Конфигурации ЧПУ (человекопонятных URL) для новостного раздела с использованием инфоблоков и компонента bitrix:news. Рассмотрим различные сценарии маршрутизации с акцентом на параметры ЧПУ, SEF (Search Engine Friendly).
Сценарий 1: Плоская структура без подразделов
Цель: site.ru/news/news-name/
-
Настройки инфоблока:
- URL страницы инфоблока:
#SITE_DIR#/news/ - URL детальной страницы:
#SITE_DIR#/news/#ELEMENT_CODE#/
- URL страницы инфоблока:
-
Конфигурация компонента:
"SEF_FOLDER" => "/news/",
"SEF_URL_TEMPLATES" => [
"news" => "", // Корень раздела
"section" => "", // Игнорируется (нет подразделов)
"detail" => "#ELEMENT_CODE#/",
]
Примечание: Параметр #ELEMENT_CODE# генерирует уникальный семантический URL элемента.
Сценарий 2: Иерархическая структура с подразделами
Цель: site.ru/news/section/news-name/
-
Настройки инфоблока:
- URL инфоблока:
#SITE_DIR#/news/ - URL раздела:
#SITE_DIR#/news/#SECTION_CODE#/ - URL детальной страницы:
#SITE_DIR#/news/#SECTION_CODE#/#ELEMENT_CODE#/
- URL инфоблока:
-
Конфигурация компонента:
"SEF_FOLDER" => "/news/",
"SEF_URL_TEMPLATES" => [
"news" => "",
"section" => "#SECTION_CODE#/", // Динамический код раздела
"detail" => "#SECTION_CODE#/#ELEMENT_CODE#/",
]
Особенность: URL включает цепочку раздел/элемент, что требует корректной настройки связей в инфоблоке.
Сценарий 3: Мультираздельное отображение с единым URL элемента
Цель: Новость доступна в site.ru/news/section1/ и site.ru/news/section2/, но имеет единый URL: site.ru/news/news-name/
-
Настройки инфоблока:
- URL инфоблока:
#SITE_DIR#/news/ - URL раздела:
#SITE_DIR#/news/#SECTION_CODE_PATH#/ - URL детальной страницы:
#SITE_DIR#/news/#ELEMENT_CODE#/
- URL инфоблока:
-
Конфигурация компонента:
"SEF_FOLDER" => "/news/",
"SEF_URL_TEMPLATES" => [
"news" => "",
"section" => "#SECTION_CODE_PATH#/", // Полный путь раздела
"detail" => "#ELEMENT_CODE#/", // Независимый от раздела URL
]
Ключевой момент: Использование #SECTION_CODE_PATH# позволяет сохранить иерархию разделов, но детальная страница исключает их из пути.
Сценарий 4: Использование префикса для элементов
Цель: site.ru/news/element/news-name/
-
Настройки инфоблока:
- URL инфоблока:
#SITE_DIR#/news/ - URL раздела:
#SITE_DIR#/news/#SECTION_CODE#/ - URL детальной страницы:
#SITE_DIR#/news/element/#ELEMENT_CODE#/
- URL инфоблока:
-
Конфигурация компонента:
"SEF_FOLDER" => "/news/",
"SEF_URL_TEMPLATES" => [
"news" => "",
"section" => "#SECTION_CODE#/",
"detail" => "element/#ELEMENT_CODE#/", // Префикс для элементов
]
Преимущество: Исключает конфликты между SECTION_CODE и ELEMENT_CODE.
Работа с файлом urlrewrite.php
Файл urlrewrite.php содержит правила маршрутизации. Пример конфигурации для обработки запросов /news/:
0 => [
'CONDITION' => '#^/news/#',
'RULE' => '',
'ID' => 'bitrix:news',
'PATH' => '/news/index.php',
'SORT' => 100,
],
Важно:
- Файл автоматически генерируется при сохранении компонента через админ-интерфейс.
- Ручная модификация требует соблюдения синтаксиса и очистки кеша.
Рекомендации:
- После изменения настроек выполните Очистку кеша.
- Для верификации URL проверьте корректность правил в
urlrewrite.php.