Jump to content

Recommended Posts

Пациент: military21.ru

 

Вводная: Сертификат ssl установлен. В админке ssl отключен, config.php по умолчанию (прописано http).

по https можно загрузить любую страницу вбив в адрес https. При этом имеет место ошибка типа Mixed Content (часть данный передается по http). 

 

Задача: Внести изменения в код дабы все данные страницы при обращении по https грузились по https +все работало корректно. Ну и прошу сообщить о том что было изменено.

Share this post


Link to post
Share on other sites

Могу посмотреть.

Оплата только если сделаю, постфактум. $25.

Share this post


Link to post
Share on other sites

вообщем дополнительные данные

при включении https в конфигах пхп. работать начинает нормально. По хттпс все устраивает, НО

Появляется большая проблема связанная с тем что страницы сайта загружающиеся ПО HTTP некорректны. в категориях фильтрпро не фильтрует (связано с тем что лицензия привязывается только к 1 варианту либо http либо https) и становятся неактивными кнопки на страницах товаров (купить и тп нажатие на них ни приводит ни к чему). возможно аналогичная ситуация и с кнопками на страницах категорий.  А все что в индексе поисковиков сейчас по http. Поэтому пользователи при переходе с ПС попадают на некорректные страницы.

Таким образом встает следующая проблема - сделать редирект всех http на https . Казалась бы просто. Да не так как кажется. Опробование известных в интернете (легко найти) методов с добавлением строк в хтаксесс приводит к циклической переадресации. Так же пробовал сделать редирект с помощью редирект менеджера. Та же шляпа. Так что задача следующая сделать редирект всех http на хттпс

Либо

Заставить корректно работать фильтрпро по обоим и по хттп и по хттпс + сделать так чтобы кнопки нормально работали в обоих случаях. Короче нужно чтобы страницы магазина были полностью рабочими при переходе как по https так и по http.

Либо

Сделать так чтобы по https грузилась только часть страниц - типа личных кабинетов, админки и тп. При этом чтобы в категориях и в товарах все было рабочим по http. Но это наверное сложный вариант

Share this post


Link to post
Share on other sites

Покажите содержимое вашего .htaccess с вашими правилами для редиректа с http на https.

Share this post


Link to post
Share on other sites
закомментил их. внизу. это один из вариантов.

 

# 1.To use URL Alias you need to be running apache with mod_rewrite enabled. 

 

# 2. In your opencart directory rename htaccess.txt to .htaccess.

 

# For any support issues please visit: http://www.opencart.com

#Options +FollowSymlinks

 

# Prevent Directoy listing 

Options -Indexes

 

# Prevent Direct Access to files

<FilesMatch "\.(tpl|ini|log)">

 Order deny,allow

 Deny from all

</FilesMatch>

 

# SEO URL Settings

RewriteEngine On

#  Редирект c www на без www 

RewriteCond %{HTTP_HOST} ^www.military21.ru 

RewriteRule ^(.*)$ http://military21.ru/$1 [R=301,L] 

# Редирект для главной (с /index.php на /) 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\ HTTP/ 

RewriteRule ^index\.html$ / [R=301,L] 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ 

RewriteRule ^index\.php$ / [R=301,L] 

# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/ 

 

RewriteBase /

#RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]

RewriteRule ^sitemap.xml$ index.php?route=record/google_sitemap_blog [L]

RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)

RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

 

### Additional Settings that may need to be enabled for some servers 

### Uncomment the commands by removing the # sign in front of it.

### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that.

 

# 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:

 php_flag register_globals off

 

# 2. If your cart has magic quotes enabled, This may work to disable it:

 php_flag magic_quotes_gpc Off

 

# 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try

# php_value upload_max_filesize 999M

 

# 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields

# php_value post_max_size 999M

 

# 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields

# php_value max_execution_time 200

 

# 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields

# php_value max_input_time 200

 

# 7. disable open_basedir limitations

# php_admin_value open_basedir none

 

# php_value date.timezone Etc/GMT-3

 

<IfModule mod_expires.c>

  ExpiresActive On

  ExpiresByType application/javascript "access plus 1 year"

  ExpiresByType text/javascript "access plus 1 year"

  ExpiresByType text/css "access plus 1 year"

  ExpiresByType image/gif "access plus 1 year"

  ExpiresByType image/jpeg "access plus 1 year"

  ExpiresByType image/png "access plus 1 year"

</IfModule>

 

<IfModule mod_deflate.c>

  AddOutputFilterByType DEFLATE application/javascript

  AddOutputFilterByType DEFLATE text/javascript

  AddOutputFilterByType DEFLATE text/css

  <IfModule mod_setenvif.c>

    BrowserMatch ^Mozilla/4 gzip-only-text/html

    BrowserMatch ^Mozilla/4\.0[678] no-gzip

    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

  </IfModule>

</IfModule>

 

<FilesMatch "\.(tpl|ini|log|txt)">

    Order deny,allow

    Deny from all

    </FilesMatch>

 

<Files vk_export_cron.php>

    Order Deny,Allow

    Deny from all 

</Files>

 

#RewriteEngine On

#RewriteCond %{HTTPS} off


 

RewriteEngine on

RewriteCond %{HTTPS} on

RewriteRule ^robots\.txt$ robots-https.txt

AddDefaultCharset utf-8

Share this post


Link to post
Share on other sites

причем интересно что для того чтобы нормально отображались страницы по https мне приходиться добавлять "s" к http не только к строкам в секции // HTTPS но и к // HTTP (это я о конфигах). Иначе не все содержимое подргужается по HTTPS 

 

сейчас отключил пока https = привел конфиги к дефолту и снял исподьзовать ssl в админке

Share this post


Link to post
Share on other sites

Я использую такое же правило (видимо пост на тостере один и тот же попался :) ), но у меня работает как положено. Попробуйте в такой последовательности:



<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
    RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
    #RewriteRule ^sitemap.xml$ index.php?route=feed/sitemap_xml [L]
    #RewriteRule ^yandex.yml$ index.php?route=feed/yandex_market [L]

    #редирект c www на без www
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]

    #редирект c http на https
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</IfModule>
Edited by destreser

Share this post


Link to post
Share on other sites

скопипастил в конец 

фигушки.. не работает

 

Снова циклическая переадресация.

Share this post


Link to post
Share on other sites

У вас и так хаос в хтацесе, так еще копипастом в конце вы усугубили ситуацию :)

 

 

Создайте новый с таким содержимым:



Options +FollowSymlinks -Indexes -MultiViews

<IfModule mod_dir.c>
	DirectoryIndex index.php
</IfModule>

<FilesMatch "\.(tpl|ini|log)">
	Order deny,allow
	Deny from all
</FilesMatch>

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
    RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

    #редирект c www на без www
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]

    #редирект c http на https
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</IfModule>

# Force UTF-8 for a number of file formats
<IfModule mod_mime.c>
    AddCharset utf-8 .html .css .js .xml .json .rss .txt .php .tpl
</IfModule>
Edited by destreser

Share this post


Link to post
Share on other sites

Так, по умолчанию опенкарт дает https на сраницу регистрации и форму заказа, к чему огород городить и весь сайт через https пускать?

Решить можно проблему конечно, добавив этот код в htaccess. Так получится редирект, страшного ничего нет, пс нормально сайт индексируют

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

+ надо смотреть через отладчик что по https не грузится и редактировать модули

- это то что не сделать редирект с www.site.ru на site.ru, насколько я знаю из-за самого апача, когда такой редирект работает

Share this post


Link to post
Share on other sites

destreser загрузил ваш htaccess.

Так же - циклическая переадресация

Share this post


Link to post
Share on other sites


# 1.To use URL Alias you need to be running apache with mod_rewrite enabled.

# 2. In your opencart directory rename htaccess.txt to .htaccess.

# For any support issues please visit: http://www.opencart.com

Options +FollowSymlinks

# Prevent Directoy listing

Options -Indexes

# Prevent Direct Access to files

<FilesMatch "\.(tpl|ini|log)">

Order deny,allow

Deny from all

</FilesMatch>

# SEO URL Settings

RewriteEngine On

# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/

RewriteBase /

RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]

RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]

RewriteRule ^download/(.*) /index.php?route=error/not_found [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)

RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

RewriteCond %{HTTPS} off

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

### Additional Settings that may need to be enabled for some servers

### Uncomment the commands by removing the # sign in front of it.

### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that.

# 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:

# php_flag register_globals off

# 2. If your cart has magic quotes enabled, This may work to disable it:

# php_flag magic_quotes_gpc Off

# 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try

# php_value upload_max_filesize 999M

# 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields

# php_value post_max_size 999M

# 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields

# php_value max_execution_time 200

# 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields

# php_value max_input_time 200

# 7. disable open_basedir limitations

# php_admin_value open_basedir none

Share this post


Link to post
Share on other sites

Так, по умолчанию опенкарт дает https на сраницу регистрации и форму заказа, к чему огород городить и весь сайт через https пускать?

Решить можно проблему конечно, добавив этот код в htaccess. Так получится редирект, страшного ничего нет, пс нормально сайт индексируют

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

+ надо смотреть через отладчик что по https не грузится и редактировать модули

- это то что не сделать редирект с www.site.ru на site.ru, насколько я знаю из-за самого апача, когда такой редирект работает

 

Вообще меня устраивает и такой вариант. Это дальше наверное оптимальней.

Насколько я понимаю для этого нужно включить ssl в админке и внести изменения в файлы config.php.в корне и папке админ добавив в секции HTTPS буквы s к http.

Чтоя имею после этого

у меня категории и товары тоже начинают грузиться по https! +содержимое страниц по https грузиться криво. нормально начинает грузиться только если добавить "s" к "http" еще и в секциях  // HTTP в файлах конфигураций

 

Ваше решение с кодом в хтаксес тоже приводит к циклической переадресации

Share this post


Link to post
Share on other sites

andrey24 вставил ваш вариант htaccess.

Циклическая переадресация

Во всех случаях при переходе по http появляется https в адресной строке но браузер пишет что 

На этой странице обнаружена циклическая переадресация

Share this post


Link to post
Share on other sites

Не чему там зацикливать, это с рабочего магазина пример. Смотрите что накуролесили что не работает

В апаче ssl включен кстати?

 

 

у меня категории и товары тоже начинают грузиться по https! +содержимое страниц по https грузиться криво. нормально начинает грузиться только если добавить "s" к "http" еще и в секциях  // HTTP в файлах конфигураций

там есть блок для https там и надо добавить s в обоих конфиг-файлах + включить https в админке

Share this post


Link to post
Share on other sites

значит что то зацикливает.  :-) 

я уже и redirect mahager на всякий случай отключил. ниче не помогает.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.