Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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>

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

Змінено користувачем 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
Оправдываете ник ?

Надіслати
Поділитися на інших сайтах

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
Надіслати
Поділитися на інших сайтах


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

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

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

 

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.