Редирект пагинации WordPress на /all/ без сохранения номера страницы

    При перенаправлении страниц пагинации в WordPress, например, с /articles/other/page/2/ на /all/, многие сталкиваются с проблемой: вместо перехода на /all/ происходит редирект на /all/page/2/. Это связано с тем, что сервер автоматически подставляет параметры пагинации из исходного URL. Разберём, как правильно настроить 301 редирект, чтобы избавиться от ненужных номеров страниц.

    Почему возникает редирект на /all/page/2/?

    При использовании простого правила Redirect 301 /articles/other/page/2/ /all/ Apache (или другой веб-сервер) интерпретирует запрос как перенаправление всего пути, включая сегмент /page/2/. Однако WordPress или плагины часто перехватывают редирект и добавляют параметр пагинации обратно, поскольку в исходном URL был номер страницы. В результате вы получаете цепочку: /articles/other/page/2//all//all/page/2/.

    Как правильно настроить 301 редирект для пагинации

    Чтобы перенаправить все страницы пагинации рубрики на /all/ без сохранения номера страницы, используйте одно из следующих решений.

    Способ 1: Использование RedirectMatch (рекомендуется)

    В файл .htaccess добавьте правило с регулярным выражением:

    RedirectMatch 301 ^/articles/other/page/\d+/$ /all/

    Это правило перехватывает любой номер страницы (\d+) и перенаправляет строго на /all/. Обратите внимание на экранирование слешей и цифр.

    Способ 2: Использование mod_rewrite

    Если RedirectMatch не сработал, примените mod_rewrite:

    RewriteEngine On
    RewriteRule ^articles/other/page/\d+/$ /all/ [R=301,L]

    Убедитесь, что RewriteEngine включён и правило стоит до стандартных правил WordPress.

    Способ 3: Плагин редиректов (для новичков)

    Установите плагин Redirection или Yoast SEO. В интерфейсе создайте правило: исходный URL - /articles/other/page/(.*), целевой - /all/, тип - 301. Плагин сам обработает регулярные выражения и исключит добавление номера страницы.

    Проверка и устранение ошибок

    После добавления правила обязательно проверьте результат:

    • Откройте в браузере /articles/other/page/2/ - вы должны попасть на /all/.
    • Проверьте код ответа сервера (должен быть 301).
    • Убедитесь, что нет циклических редиректов - для этого используйте онлайн-инструменты вроде Redirect Checker.

    Если проблема сохраняется, очистите кеш WordPress и браузера, а также проверьте, нет ли конфликтующих правил в .htaccess.

    Заключение

    Правильная настройка 301 редиректа с пагинации на /all/ требует использования регулярных выражений, чтобы отбросить номер страницы. Используйте RedirectMatch или mod_rewrite - это гарантирует, что пользователи и поисковые системы попадут именно на /all/, а не на /all/page/2/. После настройки проверьте редирект и обновите карту сайта.

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