Как переписать URL пагинации с помощью .htaccess

    Владельцы сайтов на CMS «1С-Битрикс» часто сталкиваются с проблемой некрасивых адресов страниц пагинации. Вместо читаемого /blog/page3 система генерирует ссылки вида https://site.com/blog/?PAGEN_1=3. Такие URL не только выглядят непрезентабельно, но и могут негативно влиять на SEO, создавая дубли страниц. В этой статье мы разберём, как с помощью файла .htaccess настроить ЧПУ (человекопонятные URL) для пагинации.

    Зачем менять URL пагинации

    Стандартные адреса с параметрами вроде PAGEN_1 или page ухудшают юзабилити и индексацию. Поисковые системы, такие как Яндекс и Google, могут считать страницы с разными GET-параметрами дублями, что размывает ссылочный вес. Чистые URL /blog/page2, /blog/page3 решают эту проблему: они короткие, логичные и легко воспринимаются роботами.

    Возможна ли перезапись через .htaccess

    Да, это возможно с помощью модуля mod_rewrite сервера Apache. Если ваш сайт работает на Apache или совместимом с ним хостинге, вы можете создать правила перезаписи в корневом файле .htaccess. Однако стоит помнить: перезапись URL на стороне сервера не меняет реальную структуру ссылок в CMS. Вам также потребуется настроить генерацию ЧПУ в шаблоне сайта, чтобы внутренние ссылки вели на новые адреса.

    Пример правила для .htaccess

    Добавьте следующий код в файл .htaccess перед стандартными правилами Bitrix (обычно перед RewriteCond %{REQUEST_FILENAME} !-f):

    RewriteEngine On
    RewriteRule ^blog/page([0-9]+)/?$ /blog/?PAGEN_1=$1 [L,QSA]

    Это правило преобразует входящий запрос /blog/page3 в /blog/?PAGEN_1=3 на сервере. Пользователь и поисковый робот видят чистый URL, а CMS получает привычный параметр. Если ваш раздел называется не blog, а иначе (например, news или catalog), замените соответствующую часть.

    Важные нюансы настройки

    • Проверьте поддержку mod_rewrite: убедитесь, что на хостинге включён модуль и разрешена директива AllowOverride All.
    • Избегайте конфликтов: размещайте правило после общих проверок на существование файлов и папок.
    • Настройте внутренние ссылки: в шаблоне сайта (компонент system.pagenavigation) замените генерацию ссылок на новый формат, иначе пользователи увидят старые адреса.
    • 301 редирект со старых URL: чтобы не потерять трафик, добавьте правило для редиректа со старых адресов на новые. Пример: RewriteCond %{QUERY_STRING} ^PAGEN_1=(\d+)$ RewriteRule ^blog/?$ /blog/page%1? [R=301,L].

    Альтернативные решения

    Если вы не хотите редактировать .htaccess вручную, рассмотрите использование модуля mod_rewrite через панель хостинга или специализированные SEO-модули для Битрикс (например, «SEO умных фильтров»). Однако ручная настройка даёт максимальный контроль и не требует установки дополнительных расширений.

    Заключение

    Изменить URL пагинации с помощью .htaccess - реальная задача. Правильная перезапись улучшает структуру сайта, устраняет дубли и делает адреса удобными для пользователей и поисковиков. Главное - не забыть синхронизировать серверные правила с генерацией ссылок в шаблоне CMS.

    Часто задаваемые вопросы