Исправляем баг Opencart редирект с page=1 на страницу категории

категория: , Дорабатываем, Должно быть, Полезности


Опубликовано: 29.09.2018 Просмотров: 158 Комментарии: 1


Исправляем баг Opencart редирект с page=1 на страницу категории

В Opencart есть один небольшой но досадный баг. При пагинации есть ссылка на первую страницу с параметром page=1 и при переходе открывается дубль категории. Исправляем это


В пагинации Opencart зарыто очень много багов. Например при перелистывании категории кнопками 1.2.3... у нас создаются дубли страниц, которые можно решить с помощью внедрения тегов prev и next. Но самый жесткий это дубль категории из-за ссылки https://site.com/category/?page=1. Эта ссылка формируется в пагинации для страницы 1. Хотя должна там быть без page=1.

Как решить проблему с page=1

Отчасти можно поправить пагинацию (system/library/pagination) что бы не формировалась сама ссылка. Но почему отчасти? Потому что все равно при переходе на страницу https://site.com/category/?page=1 робот увидит дубль. Надо с page=1 делать 301 редирект на страницу без page. Много кто скажет а как же роботы найдут страницу с параметром page если ее не формировать. Да, по логике не должны, но как показывает практика роботы все это видят.

Для того что бы решить проблему надо в контроллер категории после пагинации добавить код:

//301 from page=1
if(isset($this->request->get['page']) && $this->request->get['page'] == 1){
  header('Location: ' . $this->url->link('product/category', 'path=' . $category_info['category_id'], true), true, 301);
  exit();
}
//301 from page=1

Так, если система увидит что page=1 автоматически сделает редирект на страницу без параметра page. Это небольшое дополнение в код защитит вас от дублей категории.


Комментарии:


Фото комментатора

ActiveSync 14.10.2018

Так же можно сделать и в htaccess без правок файлов контроллера. RewriteCond %{QUERY_STRING} ^(.*)&?page=1([^\d]*)$ RewriteRule ^/?(.*)$ /$1?%1%2 [R=301,L]
Администратор

Ответ for-opencart.com 14.10.2018

Спасибо за информацию, будет полезная. Да, так даже лучше.

Быстрый поиск

Похожее

  • 301 redirect для Opencart

    301 redirect для Opencart это сплошная головная боль для разработчиков и владельцев магазинов. Для такой задачи я решил написать свой модуль

Новое на сайте