Jump to content
Sign in to follow this  
warezliker

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

Recommended Posts

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

Столкнулся с проблемой: при попытке перевести сайт на 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>

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

Edited by warezliker

Share this post


Link to post
Share on other sites
В 26.01.2017 в 12:56, markimax сказал:

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

Share this post


Link to post
Share on other sites
1 час назад, warezliker сказал:

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

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

Share this post


Link to post
Share on other sites

если в .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]

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

Share this post


Link to post
Share on other sites
2 часа назад, markimax сказал:

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

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

Share this post


Link to post
Share on other sites
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]

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

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

Share this post


Link to post
Share on other sites
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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites
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
Оправдываете ник ?

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
11 часов назад, markimax сказал:

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

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

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

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

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

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

ccb57d34e70f43b892757cd47ab5ce5c.png

Screenshot_1.png

 

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

Edited by warezliker

Share this post


Link to post
Share on other sites
14 часов назад, AlexDW сказал:

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

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

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

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

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites
24 минуты назад, warezliker сказал:

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

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

Share this post


Link to post
Share on other sites

Здаюсь.

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

включаю стандартное ЧПУ - главная работает, любые другие ссылки - 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. Одинаковы, но выводятся только при открытии главной, для других страниц ничего нет.

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

 

Edited by warezliker

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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.