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

Проблема - баг Opencart редирект с page=1 на страницу категории


Recommended Posts

35 минут назад, Koss88 сказал:

Проблема и ее решение описаны тут Данная проблема относится только к Опенкарт или на ocstore 2.3.x тоже нужно исправлять недоработку? 

Перейдите со страницы категории и со страницы page2 на страницу page1, код ответа должнен быть 301, если этого не произойдет, воспользуйтесь способами в статье.

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


Просмотрел ответ в той теме, какое то кустарное решение, совсем не по синтаксису ОС, это раз, второе - это решение только для категории актуально, а для страницы поиска, производителя, акций ? в третьих - эта проблема решается в класе pagination, раз и для всех возможных вариантов.

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

В 22.01.2019 в 00:06, ActiveSync сказал:

Перейдите со страницы категории и со страницы page2 на страницу page1, код ответа должнен быть 301, если этого не произойдет, воспользуйтесь способами в статье.

Да действительно, страница категории и page1 идентичны... стало быть это дубль

В 22.01.2019 в 08:34, auditor сказал:

Просмотрел ответ в той теме, какое то кустарное решение, совсем не по синтаксису ОС, это раз, второе - это решение только для категории актуально, а для страницы поиска, производителя, акций ? в третьих - эта проблема решается в класе pagination, раз и для всех возможных вариантов.

А поподробнее можно? как пагинацию  правильно настраивать в ОС?

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


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

Да действительно, страница категории и page1 идентичны... стало быть это дубль

А поподробнее можно? как пагинацию  правильно настраивать в ОС?

Если просто убрать дублирование page=1 со всех роутов в пагинации, то достаточно в файле:

system/library/pagination.php

сделать следующие изменения:
шаг_0: найти строку:

$this->url = str_replace('%7Bpage%7D', '{page}', $this->url);

после неё добавляем:

$non_page_one = str_replace(array('&page={page}', '?page={page}', 'page={page}',), '', $this->url);

и теперь повсюду, где есть следующий код:

str_replace(array('&page={page}', '&page={page}'), '', $this->url)

заменить его на: 

$non_page_one

тоесть по итогу, должно получиться что то вроде: (до)

if ($page > 1) {
			$output .= '<li><a href="' . str_replace(array('&amp;page={page}', '&page={page}'), '', $this->url) . '">' . $this->text_first . '</a></li>';
			if ($page - 1 === 1) {
				$output .= '<li><a href="' . str_replace(array('&amp;page={page}', '&page={page}'), '', $this->url) . '">' . $this->text_prev . '</a></li>';
			} else {
				$output .= '<li><a href="' . str_replace('{page}', $page - 1, $this->url) . '">' . $this->text_prev . '</a></li>';
			}
		}

после правки:

if ($page > 1) {
            $output .= '<li><a href="' . $non_page_one . '">' . $this->text_first . '</a></li>';			
			if ($page - 1 === 1) {
                $output .= '<li><a href="' . $non_page_one . '">' . $this->text_prev . '</a></li>';
			} else {
				$output .= '<li><a href="' . str_replace('{page}', $page - 1, $this->url) . '">' . $this->text_prev . '</a></li>';
			}
		}

а таких вставок там несколько, так что будьте внимательны.

По другим правилам СЕО, то мы только с самой пагинацией долго мучаем, как например правильные линки canonnical, prev\next, слеш и без слешей окончание, добавление noindex, nofollow при выборе сортировки или изменения кол-ва отображаемого товара, работа с бесконечными аргументами, типа page=100500 и т.д., раскрывать все секреты тут не буду, нашей команде тоже надо на свой кусочек по правкам зарабатывать, обращайтесь - настроим так, что никто не настроит лучше (пафосно конечно, но пока не встречал грамотно настроенных магазинов), делаем дорого, но зато раз и с гарантией на проделки + после наших правок, поисковики влюбляются в ваш сайт, убираются ненужные дубли и т.д.

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

  • 2 weeks later...
  • 7 months later...
В 23.01.2019 в 15:10, auditor сказал:

По другим правилам СЕО, то мы только с самой пагинацией долго мучаем, как например правильные линки canonnical, prev\next, слеш и без слешей окончание, добавление noindex, nofollow при выборе сортировки или изменения кол-ва отображаемого товара, работа с бесконечными аргументами, типа page=100500 и т.д., раскрывать все секреты тут не буду, нашей команде тоже надо на свой кусочек по правкам зарабатывать, обращайтесь - настроим так, что никто не настроит лучше (пафосно конечно, но пока не встречал грамотно настроенных магазинов), делаем дорого, но зато раз и с гарантией на проделки + после наших правок, поисковики влюбляются в ваш сайт, убираются ненужные дубли и т.д.

 

 

Сколько будет стоить внедрение всех необходимых нюансов пагинации?

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


  • 1 year later...

А зачем вообще влазить в системную библиотеку?

Готовьте данные до того как и отдавайте в библиотеку то что нужно, логичнее же.

Я в контроллере категории вот так делаю:

это

$data['pagination']= $pagination->render();

заменить на:

$pagination_render = $pagination->render();
$pagination_render = str_replace('?page=1', '', $pagination_render);
$data['pagination'] = $pagination_render;

 

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


  • 5 months later...
В 17.08.2021 в 01:33, prodvizhenie сказал:

А зачем вообще влазить в системную библиотеку?

Готовьте данные до того как и отдавайте в библиотеку то что нужно, логичнее же.

Я в контроллере категории вот так делаю:

это


$data['pagination']= $pagination->render();

заменить на:


$pagination_render = $pagination->render();
$pagination_render = str_replace('?page=1', '', $pagination_render);
$data['pagination'] = $pagination_render;

 

И получаться у вас ссылки дальше 10й страницы:
https://site.ru/category/0 - 10я страница
https://site.ru/category/1 - 11я страница
и т.д.

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


Я избавился от ?page=1 и дополнительно на 5й странице.

addslash - кому нужен завершающий слэш.

removeslash - кому не нужен завершающий слэш (убирает лишние редиректы).

fix_pagination_ocstore_3x_addslash.ocmod.zip fix_pagination_ocstore_3x_removeslash.ocmod.zip

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


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

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

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

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

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

Вхід

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

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

Important Information

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