Перейти к содержанию
warezliker

ocstore 1.5 не работает ЧПУ после включения SSL

Рекомендуемые сообщения

Здравствуйте!

Столкнулся с проблемой: при попытке перевести сайт на https некорректно работает ЧПУ, точнее не работает вообще.

1. В админке в настройках сайта включил использование SSL.

2. Что сделал: изменил в config.php и admin/config.php адрес сайта.

Итог: админка заработала корректно. При попытке попасть на главную страницу сайта при включенном seo_pro идет редирект вида https://site.com/https://site.com и, понятное дело, ничего не открывается, ошибка 404. При влюченном стандартном ЧПУ главная страница сайта открывается корректно, но при попытке пройти по любой ссылке ошибка 404 - т.е. движок ссылки с ЧПУ вывел, но обработать их не может. Отключаю ЧПУ - все прекрасно.

.htaccess пробовал дефолтный, который идет вместе с движком и пробовал править свой. В данный момент он имеет вид:

Options +SymLinksIfOwnerMatch

# 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 /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*(default|index|main)\.(html|php|htm)\ HTTPS/ [NC]
RewriteRule ^(([^/]+/)*)(default|main|index)\.(html|php|htm)$ https://site.com/$1 [L,R=301]
RewriteRule ^sitemap.xml$ index.php?route=record/google_sitemap_blog [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]

AddType image/svg+xml .svg
AddOutputFilterByType DEFLATE image/svg+xml

# Remove Browser Bugs
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent

# Turn on Expires and set default to 0
ExpiresActive On
ExpiresDefault A0

# Set up caching on media files for 5 weeks
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
ExpiresDefault A3024000
Header append Cache-Control "public"
</FilesMatch>

# Set up caching on media files for 5 weeks
<FilesMatch "\.(gif|jpg|jpeg|png|swf|svg)$">
ExpiresDefault A3024000
Header append Cache-Control "public"
</FilesMatch>

# Set up 1 hour caching on commonly updated files
<FilesMatch "\.(xml|txt|html|js|css)$">
ExpiresDefault A604800
Header append Cache-Control "proxy-revalidate"
</FilesMatch>

# Force no caching for dynamic files
<FilesMatch "\.(php|cgi|pl|htm)$">
ExpiresActive Off
Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
Header set Pragma "no-cache"
</FilesMatch>

Любая помощь приветствуется. Если проблема обсуждалась ранее, дайте, пожалуйста, ссылку

Изменено пользователем warezliker

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 26.01.2017 в 12:56, markimax сказал:

Здравствуйте. Спасибо за ответ, я его сразу увидел, но отписаться некогда было. Я делал все согласно этому топику (я его раньше нашел, до того, как сюда запостил свою тему), но получил вот то поведение, которое я описывал выше. Версия движка у меня 1.5.5.1.2, в статье описаны шаги для 2.х, в частности установка фикса (кстати, на 2.х все получилось вообще без каких-либо фиксов и танцев с бубном, правда, не знаю, насколько там все хорошо для яндекса было бы).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, warezliker сказал:

Здравствуйте. Спасибо за ответ, я его сразу увидел, но отписаться некогда было. Я делал все согласно этому топику (я его раньше нашел, до того, как сюда запостил свою тему), но получил вот то поведение, которое я описывал выше. Версия движка у меня 1.5.5.1.2, в статье описаны шаги для 2.х, в частности установка фикса (кстати, на 2.х все получилось вообще без каких-либо фиксов и танцев с бубном, правда, не знаю, насколько там все хорошо для яндекса было бы).

Да yandex рекомендует до склейки зеркал не делать редирект
И есть PRO версия фикса которая работает и на opencart 1.5.x - SEO HTTPS FIX PRO
При правильном переезде (особенно "для" yandex) в 99% случаев он нужен
Понимаете, существуют много хостеров, много настроек их серверов и все их "финты ушами" предугадать невозможно
Вот поэтому переезд платная услуга
Иногда "такое" бывает, что можно день потратить на "выиск" багов хостеров

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если в .htaccess убрать строки

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*(default|index|main)\.(html|php|htm)\ HTTPS/ [NC]

RewriteRule ^(([^/]+/)*)(default|main|index)\.(html|php|htm)$ https://site.com/$1 [L,R=301]

- какая реакция?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, markimax сказал:

Да yandex рекомендует до склейки зеркал не делать редирект
И есть PRO версия фикса которая работает и на opencart 1.5.x - SEO HTTPS FIX PRO
При правильном переезде (особенно "для" yandex) в 99% случаев он нужен
Понимаете, существуют много хостеров, много настроек их серверов и все их "финты ушами" предугадать невозможно
Вот поэтому переезд платная услуга
Иногда "такое" бывает, что можно день потратить на "выиск" багов хостеров

фикс я этот купил, еще не тестил, т.к. не было возможности. Просто ощущение, что там проблема не в том, чтоб заставить сайт работать по двум протоколам сразу, а в кривой работе ЧПУ.
По поводу хостинга - у меня ВДС, линукс, что хочешь, то и делай. С настройкой апача пришлось повозиться, но 2.х работает, а 1.5.х нет, поэтому на настройки сервера я не грешу

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, AlexDW сказал:

если в .htaccess убрать строки

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*(default|index|main)\.(html|php|htm)\ HTTPS/ [NC]

RewriteRule ^(([^/]+/)*)(default|main|index)\.(html|php|htm)$ https://site.com/$1 [L,R=301]

- какая реакция?

Попробую ближе к вечеру, отпишусь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 часа назад, AlexDW сказал:

если в .htaccess убрать строки

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*(default|index|main)\.(html|php|htm)\ HTTPS/ [NC]

RewriteRule ^(([^/]+/)*)(default|main|index)\.(html|php|htm)$ https://site.com/$1 [L,R=301]

- какая реакция?

Попробовал. Изменений в поведении нет:

1. без ЧПУ вроде все работает, кроме страницы товара (но тут выясняю, т.к. больше похоже на глюк одного из модулей),

2. со стандартным ЧПУ работает главная и 404 ошибка при попытке попасть на любую страницу,

3. с сео_про главная добавляет в адрес сайта ссылку на сайт еще раз (т.е. надо https://site.com/category/ оно пишет https://site.com/https://site.com/gategory) другие страницы 404. Аналогичное поведение, если взять родной .htaccess из движка, без каких-либо изменений. 
Фикс: установил, но делу он не помог, т.к. судя по настройкам он как раз рулит склейкой зеркал по большей части. Он генерит варнинг:

PHP Warning:  strpos() expects parameter 1 to be string, array given in /var/www/site.com/system/library/agoo/response.php on line 16

т.к. я тестирую этот переезд на копии рабочего сайта (субдомене), не исключаю, что какие-то глюки проявляются и из-за этого, но я пару лет все делаю в таком режиме (т.е. откатал на деве, залил на лив) и проблем не было.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если без чпу работает - пробуйте заменить файлы

catalog\controller\common\seo_url.php
catalog\controller\common\seo_pro.php

их оригиналами из дистрибутива и очистить системный кеш (только копии своих сохраните перед заменой на всякий случай)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
6 часов назад, warezliker сказал:

PHP Warning:  strpos() expects parameter 1 to be string, array given in /var/www/site.com/system/library/agoo/response.php on line 16

 

Вот так и палятся :mrgreen:

Не должно быть такого warning - все таки это два моих модуля
В данном случае файл от SEO CMS (причем очень старой версии)
Но, я проверил, ...  вас нету в списках купивших SEO CMS
Оправдываете ник ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Откуда у Вас модуль SEO CMS  ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
11 часов назад, markimax сказал:

Вот так и палятся :mrgreen:

Не должно быть такого warning - все таки это два моих модуля
В данном случае файл от SEO CMS (причем очень старой версии)
Но, я проверил, ...  вас нету в списках купивших SEO CMS
Оправдываете ник ?

Я у вас покупал модули на opencartadmin, там у меня аккаунт на другой почтовый ящик. В этот раз купил здесь. Внизу скрин с моего аккаунта. Каждый раз пиши, доказывай, что покупал и т.д. Модуль блога старый, т.к. он работает и смысла обновлять ради обновления я не вижу (ну и лечить сопутствующие бока с версткой тоже).

11 часов назад, ArtemPitov сказал:

Откуда у Вас модуль SEO CMS  ?

Смотрите выше

ccb57d34e70f43b892757cd47ab5ce5c.png

Screenshot_1.png

 

Все довольны?

Изменено пользователем warezliker

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
14 часов назад, AlexDW сказал:

если без чпу работает - пробуйте заменить файлы

catalog\controller\common\seo_url.php
catalog\controller\common\seo_pro.php

их оригиналами из дистрибутива и очистить системный кеш (только копии своих сохраните перед заменой на всякий случай)

Это пробовал - не помогло (ну и проверил предварительно - файлы были идентичны).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Провел всю процедуру сначала (со свежей копией файлов и базы), чтобы понять, в какой момент оно затыкается.
Апач отдает сайт по двум протоколам.
Предварительно проверил работу по http - все отлично.
Приключения начинаются, если поменять в конфигах согласно с инструкцией урлы.
Админка работает хорошо по https, по http сайт работает хорошо, по https пишет ошибку редиректа: Firefox has detected that the server is redirecting the request for this address in a way that will never complete. Отключаю ЧПУ - начинает работать фронтэнд

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
24 минуты назад, warezliker сказал:

Все довольны?

Да :ugeek:
Напишите в ЛС  - я хоть ник аккаунта у себя сменю, а то запутаемся

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здаюсь.

установил, обновил все модули и зависимости, без ЧПУ (отключен в админке) все работает.

включаю стандартное ЧПУ - главная работает, любые другие ссылки - error 404.

В логах чисто, за исключением сообщений о том, что страница не найдена.

включаю сео_про - главная страница too many redirects, любая другая - error 404.

в логах срач о редиректах (при переходе на главную постоянные редиректы с http на https) и упоминания о 404 ошибке. Фигня с редиректами при включении сео_про решается включением галки "использовать SSL" в админке, тогда с главной все нормально, 404 ошибка никуда не исчезает.

Что пробовал:

1. убрал в настройках категории товаров ЧПУ-ссылку, теперь в эту категорию можно попасть и при включенном ЧПУ на сайте, т.к. ссылка обычная вида index.php?route=product/category&path=59

2. в seo_pro.php в методе validate попробовал вывести содержимое переменных $seo и $url. Одинаковы, но выводятся только при открытии главной, для других страниц ничего нет.

как понять, что ему не так и почему оно не хочет обрабатывать любые другие ссылки? Где можно вывести что-то на дебаг?

 

Изменено пользователем warezliker

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если сани не едут сами - пробуйте на голом движке с дефолтным htaccess, без всяких приблуд/модулей

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем спасибо за попытки помочь, разобрался.

В куске конфига апача, отвечающем за работу с ssl были строки AllowOverride None, которые запрещали чтение директив .htaccess. В итоге по 80 порту все работало корректно, по 443 все падало.

Тему можно считать закрытой

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.