Достаточно часто сео-специалисты в своих рекомендациях хотят видеть красивую пагинацию вместо стандартного битриксового ?PAGEN_X=Y.
Честно говоря, не совсем понятно, почему это до сих пор не сделали "из коробки", но, как говорится - "маемо, шо маемо".
Данный пост о том, как сделать пагинацию красивой и ничего не сломать.
Итак, нам нужно привести нашу пагинацию к виду: /catalog/#SECTION_COD#/pageX/
Первым делом нужно изменить шаблон компонента пагинации, чтобы он начал выдавать корректный формат ссылки.
Для этого нам нужно заменить все ссылки со старого формате PAGEN_1 на новый, статический.
Имейте ввиду, если у вас на странице несколько компонентов с включенной пагинацией - нужная может не быть PAGEN_1, а будет с другим порядковым номером.
Выложил для образца переделанный шаблон типовой round на гитхабе.
Подключаем данный шаблон и радуемся - у нас уже будут ссылки на страницы пагинации в нужном нам статическом формате.
Далее нужно настроить, чтобы система эти статические номера страниц научилась распознавать. Для этого, в htaccess прописываем разборку ЧПУ:
htaccess
Также создаем файл /bitrix/pagen.php такого содержания (если у вас формат нумерации странрицы отличается от моего - внесите правки в регулярное выражение):
function __isPathTraversalUri($uri) { if (($pos = strpos($uri, '?')) !== false) { $uri = substr($uri, 0, $pos); } $uri = trim($uri); return preg_match("#(?:/|2f|^|\\\\|5c)(?:(?:%0*(25)*2e)|\\.){2,}(?:/|%0*(25)*2f|\\\\|%0*(25)*5c|$)#i", $uri) ? true : false; } $newUri = preg_replace('#(page[\d]+/)#is', '', $_SERVER['REQUEST_URI']); if (!__isPathTraversalUri($newUri)) { $_SERVER['REQUEST_URI'] = $newUri; }
Данный файл подключаем в htaccess с помощью директивы:
RewriteEngine On RewriteRule ^(.*)/page([\d]+)/ /$1/?PAGEN_1=$2 [L,QSA]
Если настройки вашего сервера не поддерживают такое подключение - файл нужно проинклюдить перед подключением ядра на странице, где лежит компонент, использующий пагинацию:
include_once "../bitrix/pagen.php"; require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
В результате функция $APPLICATION->GetCurPage(); не будет учитывать в текущем url-адресе ЧПУ-формат номера страницы.
Разработка сайта
Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...
Сопровождение сайта
Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение
Работы по сайту
Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.