Настройка генерации URL для разделов и элементов 1С-Битрикс
Некрасивые URL вида /bitrix/components/bitrix/catalog/detail.php?ID=123 или /catalog/index.php?SECTION_ID=45 — результат работы компонентов без SEF-режима (ЧПУ). Настройка генерации URL для разделов и элементов инфоблока — одна из первых задач при запуске каталога.
SEF-режим и шаблоны URL
В Битрикс «человекопонятные URL» реализованы через SEF (Search Engine Friendly) режим компонента. В SEF-режиме компонент получает управление над URL через правила маршрутизации.
В параметрах компонента bitrix:catalog (или bitrix:iblock.list) SEF-настройки:
$APPLICATION->IncludeComponent('bitrix:catalog', '', [
'SEF_MODE' => 'Y',
'SEF_FOLDER' => '/catalog/', // папка, в которой работает компонент
'SEF_URL_TEMPLATES' => [
'list' => '', // /catalog/
'section' => '#SECTION_CODE#/', // /catalog/obuv/
'element' => '#SECTION_CODE#/#ELEMENT_CODE#/', // /catalog/obuv/krossovki/
],
]);
Переменные в шаблонах URL
Доступные переменные для шаблонов:
| Переменная | Описание | Источник |
|---|---|---|
#ELEMENT_ID# |
ID элемента | b_iblock_element.ID |
#ELEMENT_CODE# |
Символьный код | b_iblock_element.CODE |
#SECTION_ID# |
ID раздела | b_iblock_section.ID |
#SECTION_CODE# |
Символьный код раздела | b_iblock_section.CODE |
#IBLOCK_TYPE_ID# |
Тип инфоблока | b_iblock.IBLOCK_TYPE_ID |
#IBLOCK_CODE# |
Символьный код инфоблока | b_iblock.CODE |
Настройка URL непосредственно в инфоблоке
Помимо параметров компонента, URL шаблоны задаются в настройках инфоблока:
Контент → Инфоблоки → [инфоблок] → Настройки:
-
URL детальной страницы — шаблон для
DETAIL_PAGE_URL -
URL страницы списка — шаблон для
LIST_PAGE_URL -
URL страницы раздела — шаблон для
SECTION_PAGE_URL
Пример: /catalog/#SECTION_CODE#/#ELEMENT_CODE#/
Эти значения хранятся в b_iblock.DETAIL_PAGE_URL, b_iblock.SECTION_PAGE_URL и используются методами CIBlockElement::GetDetailPageUrl.
Генерация символьных кодов
Символьный код (CODE) — важная часть URL. Без него URL будет содержать #ELEMENT_ID#. Настройка автоматической генерации кода:
Контент → Инфоблоки → [инфоблок] → Поля → Символьный код:
- Транслитерировать из — выбрать поле (обычно «Название»)
- Уникальный — включить, чтобы при совпадении добавлялся суффикс
- Максимальная длина — рекомендуется 100 символов
При редактировании элемента код генерируется автоматически. Для существующих элементов без кода — массовое заполнение через административный раздел (Выделить все → Установить символьный код).
Правила переадресации при изменении URL
При смене символьного кода товара старый URL перестаёт работать. Для SEO нужно настроить 301 редирект. Варианты:
- Модуль
seo→ «URL для 301 редиректов» — хранит историю URL элементов вb_seo_url_rewrite - Обработчик
OnBeforeIBlockElementUpdate— перехватить смену кода и создать правило редиректа - Ручное добавление через
Настройки → URL редиректы
SEF и ЧПУ для торговых предложений (SKU)
Для магазинов с торговыми предложениями URL строится по основному товару. Выбор конкретного SKU через GET-параметр (?sku=123) или через JS при выборе характеристик. Конкретный SKU обычно не имеет отдельного URL.
Сроки выполнения
Настройка SEF-режима, шаблонов URL и массовая генерация символьных кодов — 3–5 часов. Настройка 301 редиректов для существующих элементов при смене URL-структуры — 2–4 часа дополнительно.







