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

Бесконечный редирект главной без слэша в SeoPro на xampp


Recommended Posts

Исходные данные:

Чистая новая установка ocStore 3.0.2.0 на вирт. сервер xampp в локальную папку /shop3/. Включены ЧПУ во вкладке Сервер, во вкладке SeoPro включено "Включить SeoPro" и "ЧПУ товаров с категориями". Все остальные настройки - по-умолчанию. .htaccess активирован, базовый Rewrite - /shop3/ - прописан. Больше ничего не менялось.

 

Суть проблемы:

ЧПУ работают, категории и товары открываются нормально. Только главная страница выдаёт бесконечный редирект (не открывается). Админка работает без проблем. Если в настройках вкладки SeoPro ещё включить "Добавить слэш в конец ссылки", то всё открывается нормально, включая главную. Но везде в конце URL добавляется слэш. Нужно чтобы работало без этого слэша.

 

Вопрос:

Как избавиться от бесконечного редиректа главной, не включая конечный слэш? На этом же xampp'е запускается ещё пару магазинов на ocStore 2.x.x.x и блог на Wordpress (в своих подпапках) - там таких проблем нет: можно включать конечный слэш или отключать, всё работает без проблем.

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


31 минуту назад, spectre сказал:

 

либо в конфиге спороли адрес сайта

либо это вам поможет

 - спасибо вам, конечно, за варианты догадок, но всё это я уже проверял. Конфиг создал сам установщик ocStore 3.0.2.0 (ориг. дистр. с Гитхаба по оф. ссылке), при установке сразу в папке /shop3/ . Я сравнивал с конфигами ocStore 2.х.х.х, установленных точно таким же образом - там всё аналогично. Да и если бы в конфигах что-то было неправильно, то вариант со слэшем не работал бы вообще. .htaccess'ы тоже у них абсолютно одинаковые (кроме роутов на карту Гугла и Googlebase).

 

Интересно то, что у ocStore 3.0.2.0, установленного на демке (demo.ocstore.com) я своей проблемы не наблюдаю. Там, как я понял, включены ЧПУ и отключен завершающий слэш - и всё отлично с главной, никаких цикличных редиректов. Никакой SP OcStore 3 SeoPro Fix там не используется и всё ж нормально. https://demo.ocstore.com/desktops/mac/about_us (добавления статьи к категории) - вот этот косяк, да, есть, но к моей проблеме это не имеет отношения.

 

Ещё информация о настройках.

Если отключить ЧПУ на вкладке Сервер (и деактивировать .htaccess) - то всё отлично работает! В независимости от того, включен ли завершающий слэш на вкладке SeoPro или нет. Я могу ошибаться, но мне кажется, что у настроек ЧПУ ОпенКарта (при их включении) возникает какая-то несовместимость с вшитым SeoPro, если сайт установлен НЕ в корень хостинга, а в отдельную папку. Где-то конфликт реврайтов (условий) в php с теми, что применяются в htaccess, который нужно активизировать при включении ЧПУ. Поэтому зачем-то ему и нужно обязательно активировать завершающий слэш. Не могу понять, где что можно попробовать изменить, чтобы найти, из-за чего это происходит. А ЧПУ нужно. Ведь при точно таких же установках ocStore 2.х.х.х - проблем нет (тоже ставил в под-папку). Другое дело, что в ocStore 2.х.х.х и вшитого SeoPro нет...

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


50 минут назад, sashaustenko сказал:

Удалите этот ужас SEO PRO (PRO только название)... Стандартный SEO URL + какой-то редирект модуль, и генератор ссылок, и будет Вам счастье.

- но в демке-то (demo.ocstore.com) всё работает. Прочитайте, пожалуйста, пост выше. В смысле, что в демке и SeoPro стоит, и ЧПУ включены и завершающий слэш отключен - и главная открывается отлично, никаких цикличных редиректов.

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


6 минут назад, STh сказал:

- но в демке-то (demo.ocstore.com) всё работает. Прочитайте, пожалуйста, пост выше. В смысле, что в демке и SeoPro стоит, и ЧПУ включены и завершающий слэш отключен - и главная открывается отлично, никаких цикличных редиректов.

Я же вам написал решение. Не получилось?

Если это не подпапка, то на главной по любому присутствует незримый слеш. Его браузер не покажет, но он есть. Т.к. GET запрос не может быть пустым.

На сервер запрос пойдёт как:

GET /
Host: site.ru

 

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

7 часов назад, mpn2005 сказал:

Если это не подпапка, то на главной по любому присутствует незримый слеш. Его браузер не покажет, но он есть.

- про незримый слэш - это верно. А на счёт браузера - то здесь это зависит от его настроек. Я, например, свой Firefox настроил так, чтобы он всегда отображал этот "незримый" слэш. Но большинство современных браузеров, действительно, "из коробки", этот слэш не показывают.

7 часов назад, spectre сказал:

надо посмотреть с чего на что редирект и все станет ясно 

- с главной на главную, грубо говоря. .htaccess со своими ЧПУ-правилами "вырезает" довесок-роут и редиректит на главную, а на главной ocStore добавляет route=common/home... и так по кругу (или наоборот). Что-то типа того. Вполне возможно, если бы сайт не был установлен в подпапку, то этого бы не происходило. В этом случае где-то в коде не учтён этот нюанс (не хватает условия проверки), когда используется настройка "Без завершающих слэшей" и "ЧПУ без дублей" (в SeoPro) - получается конфликт.

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


9 часов назад, mpn2005 сказал:

В файле system/library/seopro.php

 

Перед строкой:


if (rawurldecode($url) != rawurldecode($seo)) {

Добавьте:


        if ($this->request->get['route'] == 'common/home') {
            $seo = rtrim($seo, '/') . '/';
        }

 

- проверил ваш код - всё везде заработало нормально! Спасибо! Все типовые "SEO-болячки" с URL'ами с этим кодом и включённым SeoPro отрабатывают на отлично (двойные слэши, дубли и т.п. - всё вырезается), и главная норм. открывается, без "мусора". Всё таки, при некоторых "танцах с бубном", когда у клиента не хватает денег на полную доработку сайта под SEO - этот вшитый SeoPro приносит гораздо больше пользы, чем вреда (как тут многие пишут). Однако с вашим кодом проявляется один незначительный нюанс, который немного нехорошо смотрится с точки зрения SEO. На сайте все ссылки на главную становятся без завершающего слэша (в конце доменного имени). Тот самый "незримый" слэш, который всегда обязательно присутствует в конце домена (имени сайта). Что вызывает некоторое несоответствие в коде html ссылок на главную. Например:

<base href="http://shop3.com/" />, но <link href="http://shop3.com" rel="canonical" />

- обычно для роботов ПС одна и та же страница со слэшем и без - это 2 разные страницы (дубли). Поэтому, например, те же каноникалы главной, я прописываю в точности, как в base href - т.е. со слэшем. А тут слэш принудительно обрезается - фиг его знает, правильно ли робот обработает такую ссылку.

 

Кстати, вот ещё про заморочки настроек SeoPro, если интересно:

Спойлер

название пункта "Включить SeoPro" не совсем верное. Он включен всегда, а что из него будет работать - зависит от выбранных настроек. Во всплывающем описании этого пункта сказано более точно - "ЧПУ без дублей". Именно это и делает эта настройка - убирает дубли (двойные слэши и т.п.). Так вот если эту настройку отключить - у меня изначально даже со включенным ЧПУ всё работало отлично. Но любой URL мог дублироваться (те же двойные слэши), что плохо. Поэтому глупо было бы не воспользоваться такой отличной возможностью эти дубли разом удалить одной кнопкой, благо что со встроенным SeoPro ocStore теперь это делать позволяет "из коробки". Ради этого и все эти заморочки (чтобы потом не засорять CMS всякими доп. модулями для этой же цели).

 

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


1 час назад, spectre сказал:

проверьте что в oc_seo_url есть common/home с пустым keyword

- да, спасибо - это было самое первое что я проверил в настройках SEO URL, в том числе и в БД.

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


Решено.

 

В общем, окончательное проверенное решение, на котором я остановился и избавился от всех вышеописанных недостатков, такое:

				} elseif ($data['route'] == 'common/home') {
					$url .= '/';
					unset($data[$key]);
				} 

- добавил после 129 строки оригинального seo_url.php в \catalog\controller\startup\ . Вроде, всё красиво, без костылей. В SeoPro включено всё, кроме добавления конечного слэша. "Погонял" штатную тему, все ЧПУ-URL работают как надо. Кроме, разумеется, служебных страниц (Личный кабинет, Производители...) - на них, по "старому-доброму" обыкновению OpenCart'а "из_коробки", почему-то ЧПУ не распространяются. Это уже отдельная тема для исправления. Если вас не затруднит - можете в ответ скинуть ссылки на проверенные варианты, как это исправить без доп. модулей для ocStore 3.0.2.0 ? На форуме уже где-то предлагались такие решения через Базу Данных.

Всех благодарю за ответы.

 

Прилагаю исправленный файл seo_url.php, чтобы сэкономить время на правки, вдруг кому-то ещё будет полезно:

Спойлер

 

Змінено користувачем STh
  • +1 1
Надіслати
Поділитися на інших сайтах


3 часа назад, STh сказал:

Тот самый "незримый" слэш, который всегда обязательно присутствует в конце домена (имени сайта). Что вызывает некоторое несоответствие в коде html ссылок на главную. Например:


<base href="http://shop3.com/" />, но <link href="http://shop3.com" rel="canonical" />

Да. Точно. Забыл про генерацию самой ссылки.

 

2 часа назад, STh сказал:

Прилагаю исправленный файл seo_url.php, чтобы сэкономить время на правки, вдруг кому-то ещё будет полезно:

По хорошему надо это на git запулить в репозиторий ocStore. Может примут правки и выйдет новая версия сборки уже с правками.

Там угрожали новыми релизами, вроде, но пока что-то тихо.

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

6 часов назад, mpn2005 сказал:

По хорошему надо это на git запулить в репозиторий ocStore. Может примут правки и выйдет новая версия сборки уже с правками.

 - это вряд ли. 10 лет на форумах мусолят тот же извечный "?route=common/home", а они до сих пор не могут эти 3 строчки кода добавить...

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


1 минуту назад, STh сказал:

- это вряд ли. 10 лет на форумах мусолят тот же извечный "?route=common/home", а они до сих пор не могут эти 3 строчки кода добавить...

В ocStore нет этой проблемы с включенным seo_pro и корректными настройками.

Сразу после установки всё как надо. Ели не испортить и включить как положено.

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

1 час назад, mpn2005 сказал:

В ocStore нет этой проблемы с включенным seo_pro и корректными настройками.

Сразу после установки всё как надо. Ели не испортить и включить как положено.

 - как видите, в некоторых случаях есть. Моя тема тому пример. Ибо если бы в SeoPro было изначально прописано это условие, то у меня бы не возникло циклического редиректа главной. Хотя я делал абсолютно чистую установку (уже 2 года работаю в этой сборке XAMPP). И ЧПУ - это первое, что я начал настраивать. Потом 2 дня перебирал все возможные комбинации настроек и htaccess, чтобы понять, что я мог сделать не так. Оказалось, проблема в 3х строчках кода SeoPro, а у меня всё было настроено правильно. После же добавления этого когда (или вашего) - теперь я могу ставить любые настройки: отключать\включать ЧПУ, дубли, слэши и т.п. И всё норм. открывается, никаких глюков с редиректами и прочим подобным.

Но всё равно, как я уже писал ранее, с точки зрения SEO - разработчики правильно сделали, что включили этот SeoPro в стандартный комплект ocStore. Из 2х зол, как говорится... Лучше побороться с одним глюком (как мой случай), чем постоянно "клеить заплатки" на 10 других глюков ("детских болячек"), если бы SeoPro не было.

 

Да, возможно, на фоне других масштабных доработок и возможностей, что реализовано (или допиливается) в OpenCart - моя проблема ничтожна. Поэтому её до сих пор никто и не запулил в Git. Разработчики заняты более важными вещами. Но SEO в наше время - тоже очень важная составляющая успеха любого интернет-магазина. Поэтому такие проблемы всё же нельзя полностью игнорировать.

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


2 часа назад, STh сказал:

10 лет на форумах мусолят тот же извечный "?route=common/home", а они до сих пор не могут эти 3

Я читать умею. И писал именно про вот это.

При установке чистого ocStore3 и включения seo_pro этой "10-летней" беды нет.

Как и ocStore2.

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

С этим не спорю и согласен с вами. Возможно, я не совсем понятно выразился - я имел ввиду, что после включения SeoPro, действительно, "эта 10-летняя беда" пропадает, зато вместо неё появляется другая - вот эта вот моя позавчерашняя проблема. Поэтому я и не мог его включить :)

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


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

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

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

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

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

Вхід

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

Вхід зараз
×
×
  • Створити...

Important Information

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