Bitrix: UrlRewriter — добавление правила 301 редиректа
Программное добавление постоянного редиректа через Bitrix\Main\UrlRewriter::add(). Для точечных правил при миграции или смене структуры URL.
Как использовать
- Правила хранятся в таблице; добавлять через API или через файл urlrewrite.php в корне сайта. Для массовых редиректов эффективнее nginx.
- 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.