PHP
#bitrix#urlrewriter#301#redirect#migration#seo

Bitrix: UrlRewriter — добавление правила 301 редиректа

Программное добавление постоянного редиректа через Bitrix\Main\UrlRewriter::add(). Для точечных правил при миграции или смене структуры URL.

Как использовать

  1. Правила хранятся в таблице; добавлять через API или через файл urlrewrite.php в корне сайта. Для массовых редиректов эффективнее nginx.
  2. CONDITION — регулярное выражение (Perl) для входящего пути; PATH — целевой путь или скрипт.

Точечные редиректы со старого URL на новый можно задать в 1С-Битрикс через механизм перезаписи URL. Класс UrlRewriter (API D7), общее описание: Правила перезаписи.

Добавление правила через API

use Bitrix\Main\UrlRewriter;

UrlRewriter::add(
    [
        "CONDITION" => "#^/old-url/$#",
        "RULE" => "",
        "ID" => "",
        "PATH" => "/new-url/",
    ]
);
  • CONDITION — регулярное выражение для входящего пути (например #^/old-url/$# для точного совпадения /old-url/).
  • PATH — целевой путь, на который выполняется внутреннее перенаправление. Для отдачи клиенту 301 с Location на другой URL нужна отдельная обработка (скрипт или обработчик, вызывающий редирект с кодом 301).
  • RULE, ID — при простом редиректе можно оставить пустыми.

Важно

Метод UrlRewriter::add() добавляет правило в таблицу; поведение (внутренний rewrite или отдача 301) зависит от того, как обрабатывается PATH. Для массовых 301 при миграции часто удобнее настраивать редиректы в nginx. В Bitrix редиректы можно также прописать вручную в файле urlrewrite.php в корне сайта (массив $arUrlRewrite).

Подробнее: Миграция с WordPress на Bitrix без потери SEO.