Настройка 301-редиректов 1С-Битрикс
301-редирект сообщает поисковику: «Страница переехала навсегда, перенеси весь вес ссылок на новый URL». Без него при смене структуры URL или домена накопленные позиции теряются. В Битрикс редиректы можно настроить на нескольких уровнях — выбор зависит от задачи.
Модуль «Управление сайтом» — редиректы
Встроенный инструмент: Настройки → Настройки продукта → URL-адреса. Здесь настраивается редирект с http на https и с www на без www (или наоборот). Это самые критичные редиректы — дублирование протокола и поддомена. Битрикс делает это через CMain::Redirect() в прологе.
Модуль SEO — управление редиректами
Путь: Маркетинг → Поисковая оптимизация → Редиректы. Позволяет добавлять правила перенаправления с шаблонами. Поддерживает регулярные выражения.
Пример: при смене структуры каталога нужно перенаправить /old-catalog/product-123/ на /catalog/category/product-123/. Добавляем правило:
| Поле | Значение |
|---|---|
| Источник (регулярное выражение) | ^/old-catalog/(.+)/$ |
| Назначение | /catalog/category/$1/ |
| Тип | 301 |
Правила проверяются в порядке приоритета. При большом количестве правил (100+) включите кеширование правил в настройках модуля.
Редиректы через .htaccess (Apache)
Для массовых редиректов или когда нужна максимальная производительность (редирект происходит на уровне веб-сервера, до выполнения PHP):
# Редирект со старого раздела на новый
Redirect 301 /old-section/ /new-section/
# Regex-редирект
RewriteRule ^old-catalog/(.*)$ /catalog/$1 [R=301,L]
Файл .htaccess находится в корне сайта. Изменения применяются немедленно без перезапуска Apache.
Редиректы через nginx
На проектах с nginx редиректы эффективнее выносить в конфиг сервера, а не в .htaccess:
# В блоке server {}
location ~ ^/old-catalog/(.+)$ {
return 301 /catalog/$1;
}
# Массовые редиректы через map
map $request_uri $new_uri {
/old-page-1/ /new-page-1/;
/old-page-2/ /new-page-2/;
default '';
}
if ($new_uri) {
return 301 $new_uri;
}
Конфиг nginx применяется после nginx -s reload. Для управления редиректами из административной панели Битрикс конфиг nginx не подходит — он требует доступа к серверу.
Типичная задача: смена ЧПУ у инфоблока
При смене шаблона URL элементов инфоблока старые URL перестают работать. Нужно добавить правила редиректов по маске. Если старый URL содержал ID (/catalog/element-123.html), а новый — символьный код (/catalog/element-code/), для каждого элемента создаётся отдельная запись в модуле SEO.
Массовое добавление редиректов при смене ЧПУ делается скриптом:
$res = \CIBlockElement::GetList([], ['IBLOCK_ID' => 5], false, false, ['ID', 'CODE']);
while ($el = $res->Fetch()) {
\CURLRewrite::Add([
'SITE_ID' => 's1',
'SORT' => 100,
'CONDITION'=> '^/catalog/element-' . $el['ID'] . '\.html$',
'RULE' => '/catalog/' . $el['CODE'] . '/',
'TYPE' => '301',
]);
}
CURLRewrite — класс модуля main для программного управления правилами редиректов, которые хранятся в таблице b_url_rewrite.
Сроки выполнения
Настройка базовых редиректов (http→https, www) — 30 минут. Разработка и применение массовых редиректов при смене структуры URL — 2–4 часа.







