Настройка ЧПУ ссылок 1С Битрикс
По умолчанию при создании информационного путь к страницам раздела и детального просмотра задается в виде ссылок на физические файлы которые должны содержать соответствующие компоненты.

Наша задача добиться чтобы ссылки на страницы раздела и страницы детального просмотра имели вид ЧПУ, т. е.: корневой раздел/название раздела/название статьи.
Для этого в настройках инфоблока необходимо внести адреса
URL страницы информационного блока: /#SITE_DIR#/poleznaya-informatsiya
URL страницы раздела: /#SITE_DIR#/poleznaya-informatsiya/#CODE#
RL страницы детального просмотра: /#SITE_DIR#/poleznaya-informatsiya/#SECTION_CODE#/#CODE#
где:
#SITE_DIR# — коневая папка сайта
poleznaya-informatsiya — физическая папка с файлом index.php и компонентой «Список новостей»
#SECTION_CODE# — символический код раздела
#CODE# — символический код элемента
В настройках полей элементов инфоблока указать обязательным «Символьный код» включить «Если код задан, то проверять на уникальность», «Транслитерировать из названия при добавлении элемента.», «Удалять лишние символы замены.».

Так как мы используем инфоблок с разделами то и в настройках полей разделов инфоблока задать соотвествующие параметры как и для элементов.

Теперь создадим соответствующие разделы и статьи для нашего инфоблока

Все первоначальные этапы по созданию инфоблока у нас созданы теперь необходимо позаботится о выводи информации на сайте, для этих целей у нас существует компоненты: «Список новостей» и «Новость детально».
Настройка и вывод списка статей
Создадим в нашей физической папке «poleznaya-informatsiya» файл index.php и добавим в него компоненту «Список новостей», выбираем соответствующий информационный блок, в нашем случае это «Статьи». Для того что бы наша компонента отображала только статьи принадлежащие разделу в дополнительным настройках компоненты необходимо указать переменным глобально массива $_REQUEST который будет содержать символический код, а именно =

IncludeComponent(
«bitrix:news.list»,
«bar»,
array(
«ACTIVE_DATE_FORMAT» => «d.m.Y»,
«ADD_SECTIONS_CHAIN» => «N»,
«AJAX_MODE» => «Y»,
«AJAX_OPTION_ADDITIONAL» => «»,
«AJAX_OPTION_HISTORY» => «N»,
«AJAX_OPTION_JUMP» => «N»,
«AJAX_OPTION_STYLE» => «Y»,
«CACHE_FILTER» => «N»,
«CACHE_GROUPS» => «Y»,
«CACHE_TIME» => «36000000»,
«CACHE_TYPE» => «N»,
«CHECK_DATES» => «Y»,
«COMPONENT_TEMPLATE» => «bar»,
«DETAIL_URL» => «»,
«DISPLAY_BOTTOM_PAGER» => «N»,
«DISPLAY_DATE» => «Y»,
«DISPLAY_NAME» => «Y»,
«DISPLAY_PICTURE» => «Y»,
«DISPLAY_PREVIEW_TEXT» => «N»,
«DISPLAY_TOP_PAGER» => «N»,
«FIELD_CODE» => array(
0 => «»,
1 => «»,
),
«FILE_404» => «»,
«FILTER_NAME» => «»,
«HIDE_LINK_WHEN_NO_DETAIL» => «N»,
«IBLOCK_ID» => «4»,
«IBLOCK_TYPE» => «ARTICLES»,
«INCLUDE_IBLOCK_INTO_CHAIN» => «N»,
«INCLUDE_SUBSECTIONS» => «N»,
«MESSAGE_404» => «»,
«NEWS_COUNT» => «3»,
«PAGER_BASE_LINK_ENABLE» => «N»,
«PAGER_DESC_NUMBERING» => «N»,
«PAGER_DESC_NUMBERING_CACHE_TIME» => «36000»,
«PAGER_SHOW_ALL» => «N»,
«PAGER_SHOW_ALWAYS» => «N»,
«PAGER_TEMPLATE» => «all»,
«PAGER_TITLE» => «»,
«PARENT_SECTION» => $_REQUEST[«SECTION_ID»],
«PARENT_SECTION_CODE» => $_REQUEST[«SECTION_CODE»],
«PREVIEW_TRUNCATE_LEN» => «»,
«PROPERTY_CODE» => array(
0 => «»,
1 => «»,
),
«SET_BROWSER_TITLE» => «N»,
«SET_LAST_MODIFIED» => «N»,
«SET_META_DESCRIPTION» => «N»,
«SET_META_KEYWORDS» => «N»,
«SET_STATUS_404» => «Y»,
«SET_TITLE» => «N»,
«SHOW_404» => «N»,
«SORT_BY1» => «RAND»,
«SORT_BY2» => «RAND»,
«SORT_ORDER1» => «RAND»,
«SORT_ORDER2» => «RAND»
),
false
);?>
Теперь для работы нашей ссылки необходимо настроить «Правило обработки адресов»
Условие: #^/poleznaya-informatsiya/([a-z-0-9_]+)#
Файл: /poleznaya-informatsiya/index.php
Правило: SECTION_CODE=$1

Настройка и вывод детальной информации статьи
Создадим в нашей физической папке «poleznaya-informatsiya» файл detail.php и добавим в него компоненту «Новость детально», выбираем соответствующий информационный блок, в нашем случае это «Статьи». для того что бы наша компонента отображала нужную нас статью в основных параметрах компоненты необходимо указать переменные глобально массива $_REQUEST который будет содержать символический код, а именно =

$APPLICATION->IncludeComponent(
"bitrix:news.detail",
"",
Array(
"ACTIVE_DATE_FORMAT" => "d.m.Y",
"ADD_ELEMENT_CHAIN" => "N",
"ADD_SECTIONS_CHAIN" => "Y",
"AJAX_MODE" => "N",
"AJAX_OPTION_ADDITIONAL" => "",
"AJAX_OPTION_HISTORY" => "N",
"AJAX_OPTION_JUMP" => "N",
"AJAX_OPTION_STYLE" => "Y",
"BROWSER_TITLE" => "-",
"CACHE_GROUPS" => "Y",
"CACHE_TIME" => "36000000",
"CACHE_TYPE" => "A",
"CHECK_DATES" => "Y",
"DETAIL_URL" => "",
"DISPLAY_BOTTOM_PAGER" => "Y",
"DISPLAY_DATE" => "N",
"DISPLAY_NAME" => "Y",
"DISPLAY_PICTURE" => "Y",
"DISPLAY_PREVIEW_TEXT" => "Y",
"DISPLAY_TOP_PAGER" => "N",
"ELEMENT_CODE" => $_REQUEST["CODE"],
"ELEMENT_ID" => $_REQUEST["ID"],
"FIELD_CODE" => array("",""),
"IBLOCK_ID" => "2",
"IBLOCK_TYPE" => "info",
"IBLOCK_URL" => "",
"INCLUDE_IBLOCK_INTO_CHAIN" => "Y",
"MESSAGE_404" => "",
"META_DESCRIPTION" => "-",
"META_KEYWORDS" => "-",
"PAGER_BASE_LINK_ENABLE" => "N",
"PAGER_SHOW_ALL" => "N",
"PAGER_TEMPLATE" => ".default",
"PAGER_TITLE" => "Страница",
"PROPERTY_CODE" => array("",""),
"SET_BROWSER_TITLE" => "Y",
"SET_CANONICAL_URL" => "N",
"SET_LAST_MODIFIED" => "N",
"SET_META_DESCRIPTION" => "Y",
"SET_META_KEYWORDS" => "Y",
"SET_STATUS_404" => "N",
"SET_TITLE" => "Y",
"SHARE_HANDLERS" => array("delicious","facebook","lj","mailru","twitter","vk"),
"SHARE_HIDE" => "N",
"SHARE_SHORTEN_URL_KEY" => "",
"SHARE_SHORTEN_URL_LOGIN" => "",
"SHARE_TEMPLATE" => "",
"SHOW_404" => "N",
"STRICT_SECTION_CHECK" => "N",
"USE_PERMISSIONS" => "N",
"USE_SHARE" => "N"
)
);
Настройка правила аналогична так же как и для страницы «Списка новостей»
Условие: #^/poleznaya-informatsiya/([a-z-0-9_]+)/([a-z-0-9_]+)#
Файл: /poleznaya-informatsiya/detail.php
Правило: SECTION_CODE=$1&CODE=$2

В этой статьи были рассмотренный настройки вывода списка статей и страницы детально, для вывода списка разделов и настройки ЧПУ ссылок мы рассмотрим в следующей статье. Если у вас что не не получилось то мы с радостью готовы вам помочь в вопросе разработки или доработки сайта на CMS 1C-Bitrix.
Разделы блога
- Маркетинг 13
- Продвижение 20
- Разработка 23
Включение ЧПУ
Для более успешной работы поисковых машин с сайтом и более адекватного восприятия адресов сайта посетителями рекомендуется использовать человеко-понятные URL (ЧПУ).
ЧПУ (англ. Friendly URL) — веб-адреса, удобные для восприятия человеком (а также систем и методов построения таких адресов). Является аббревиатурой от словосочетания «человеко-понятный урл» (где «урл» — жаргонное обозначение URL).
Настройка показа страницы
Сайты, работающие под управлением системы 1С-Битрикс: Управление сайтом, в основном хранят свои данные в инфоблоках. Если не использовать режим ЧПУ, то адреса страниц будут выводиться с набором понятных системе, но трудно воспринимаемых человеком символов:
При выводе содержимого сайта, будь то новости или обзоры, компонент может генерировать человеко-понятные URL, если в его настройках включен режим ЧПУ:

Внимание! Использование ЧПУ подразумевает дополнительную настройку информационного блока. Поэтому включение этой опции должно быть согласовано с администратором сайта.
После этого ссылка, скажем на новость, будет иметь вид mysite.com/news/1/ . Чтобы ссылка содержала заголовок новости, при ее добавлении из административного режима укажите символьный код, который в нашем случае представляет собой заголовок новости на латинице:

На этой же вкладке вы можете указать основные теги новости.
В параметрах компонента, на вкладке Управление адресами страниц в качестве каталога ЧПУ укажите имя раздела с нужной информацией (в нашем случае это /content/articles/ ), а в поле Страница детального просмотра введите #ELEMENT_CODE#/.

Сохраните внесенные изменения и URL страницы примет более удобный для восприятия вид:

Настройка показа раздела и страницы
В первом случае инфоблок не имел разделов и все его элементы хранились в корне инфоблока, а на сайте выводились без учёта разделов. Если же у инфоблока есть разделы, то необходимо настроить ЧПУ и для разделов.
Общий порядок действий в этом случае аналогичный:
- настроить символьные коды для разделов и элементов;
- настроить условия вывода в компоненте.
Заполнение Символьных кодов для элементов было показано выше, заполнение Символьных кодов в разделах выполняется аналогично: заполнением одноимённого поля в закладке Дополнительно при создании или редактировании раздела:

В настройках параметров компонентов установите следующие значения:

В результате получится такой адрес новости:

Примечание: Возможно использование вместо символьного кода для раздела или элемента его ID в системе. Тогда можно не заполнять поле Символьный код, а в настройках элемента использовать #SECTION_ID# и #ELEMENT_ID#. В этом случае адрес страницы будет выводиться в виде чисел:

Возможно использование в настройках отдельных слов перед регулярными выражениями на латинице или на кириллице. Например: /#SECTION_CODE#/Новость#ELEMENT_CODE#/ . В этом случае эти слова также отобразятся в адресе страницы:

При использовании таких смешанных по написанию адресов учтите, что поисковые машины хоть и умеют работать с такими адресами, но не рекомендуют их использовать.
Как включить чпу в битрикс
Текущую редакцию Вашего 1С-Битрикс можно просмотреть на странице Обновление платформы ( Marketplace > Обновление платформы ).
Ограничений нет
ЧПУ: делаем адреса понятными
Согласитесь, что ссылка на некий элемент инфоблока http://mysite.ru/catalog/pants/pants-striped-flight/
гораздо понятнее посетителям, чем http://mysite.ru/catalog/?SECTION_ID=8&ELEMENT_ID=4
. Весомым аргументом в пользу человеко-понятных адресов является и то, что такие адреса лучше воспринимаются поисковыми машинами.
Сделайте красивые адреса для элементов инфоблока вместе с поддержкой ЧПУ Средства «1С-Битрикс: Управление сайтом» позволяют сделать ссылки более понятными с помощью специальной функции. Функция встроена во все комплексные компоненты (и отдельные простые) и преобразует стандартный веб-адрес в так называемый человеко-понятный URL (сокращенно ЧПУ).
-
Откройте на редактирование В режиме правки наведите мышь на область компонента, появится панель настроек. Выберите пункт Редактировать параметры компонента. Откроется форма настройки.
Подробнее. параметры компонента, который используется для вывода материалов инфоблока.
.- При наличии разделов в инфоблоке в поле Раздел (или Страница раздела) замените #SECTION_ID#/ на #SECTION_CODE#/. Построение ссылки будет выполняться с помощью символьного кода раздела
, а не его идентификатора
.

Если разделов нет, то просто замените #ELEMENT_ID# на #ELEMENT_CODE#.

Если такие настройки не выполнять, то адрес страницы элементов всего лишь изменит вид с http://mysite.ru/catalog/?SECTION_ID=8&ELEMENT_ID=4 на http://mysite.ru/catalog/8/4/ .
Примечание: если поле Символьный код не показывается в форме раздела и/или элемента, то выполните настройку форм. Настройка формы выполняется только из административной части сайта.
Если собираетесь настроить форму редактирования элемента, то откройте страницу со списком
элементов инфоблока. Если же нужно настроить форму раздела, то страницу со списком разделов.

Откройте на редактирование любой элемент (или раздел соответственно). В правой части формы нажмите на «шестеренку» . Откроется окно с настройками

Подробнее. Кроме того, настройте обязательность заполнения поля Символьный код и вы не будете забывать указывать код при создании новых разделов и элементов. Дополнительно можете включить автогенерацию кода из названия раздела/элемента путем транслитерации.
Настоятельно рекомендуется сделать настройки символьных кодов ДО добавления разделов/элементов в инфоблок. Так как для того, чтобы прописать символьные коды в уже добавленных разделах/элементах, придется открывать каждый элемент и транслитерировать название вручную.
В форме редактирования инфоблока укажите правильные пути к просмотру элемента инфоблока и раздела (если используются).
Теперь адреса страниц на материалы инфоблока имеют удобный читабельный вид.
Пример настройки ЧПУ в новостном инфоблоке
Важно запомнить!
Обратите внимание! При настройке ЧПУ значения в полях Раздел и Детальная информация должны различаться по уровню вложенности или способу формирования ссылок.
Если ссылки на разделы и элементы будут иметь одинаковый вид http://сайт.ru/catalog/символьный_код/ , то возникнет конфликт — компонент не сможет определить, открывать ему по ссылке раздел или элемент.

Поэтому в настройках адресов должен быть разный уровень вложенности. А если уровень вложенности нужен одинаковый, то используйте префиксы (или постфиксы) при формировании ссылок. Например, в поле Раздел укажите section-#SECTION_CODE#/ , а в поле Детальная информация — detail-#ELEMENT_CODE#/ .
Заключение
Для настройки человеко-понятных адресов необходимо:
- включить поддержку ЧПУ в компоненте;
- задать настройки ЧПУ для страниц и разделов;
- задать символьные коды для страниц и разделов.
Как включить чпу в битрикс
Текущую редакцию Вашего 1С-Битрикс можно просмотреть на странице Обновление платформы ( Marketplace > Обновление платформы ).
Ограничений нет
ЧПУ: делаем адреса понятными
Согласитесь, что ссылка на некий элемент инфоблока http://mysite.ru/catalog/pants/pants-striped-flight/
гораздо понятнее посетителям, чем http://mysite.ru/catalog/?SECTION_ID=8&ELEMENT_ID=4
. Весомым аргументом в пользу человеко-понятных адресов является и то, что такие адреса лучше воспринимаются поисковыми машинами.
Сделайте красивые адреса для элементов инфоблока вместе с поддержкой ЧПУ Средства «1С-Битрикс: Управление сайтом» позволяют сделать ссылки более понятными с помощью специальной функции. Функция встроена во все комплексные компоненты (и отдельные простые) и преобразует стандартный веб-адрес в так называемый человеко-понятный URL (сокращенно ЧПУ).
-
Откройте на редактирование В режиме правки наведите мышь на область компонента, появится панель настроек. Выберите пункт Редактировать параметры компонента. Откроется форма настройки.
Подробнее. параметры компонента, который используется для вывода материалов инфоблока.
.- При наличии разделов в инфоблоке в поле Раздел (или Страница раздела) замените #SECTION_ID#/ на #SECTION_CODE#/. Построение ссылки будет выполняться с помощью символьного кода раздела
, а не его идентификатора
.

Если разделов нет, то просто замените #ELEMENT_ID# на #ELEMENT_CODE#.

Если такие настройки не выполнять, то адрес страницы элементов всего лишь изменит вид с http://mysite.ru/catalog/?SECTION_ID=8&ELEMENT_ID=4 на http://mysite.ru/catalog/8/4/ .
Примечание: если поле Символьный код не показывается в форме раздела и/или элемента, то выполните настройку форм. Настройка формы выполняется только из административной части сайта.
Если собираетесь настроить форму редактирования элемента, то откройте страницу со списком
элементов инфоблока. Если же нужно настроить форму раздела, то страницу со списком разделов.

Откройте на редактирование любой элемент (или раздел соответственно). В правой части формы нажмите на «шестеренку» . Откроется окно с настройками

Подробнее. Кроме того, настройте обязательность заполнения поля Символьный код и вы не будете забывать указывать код при создании новых разделов и элементов. Дополнительно можете включить автогенерацию кода из названия раздела/элемента путем транслитерации.
Настоятельно рекомендуется сделать настройки символьных кодов ДО добавления разделов/элементов в инфоблок. Так как для того, чтобы прописать символьные коды в уже добавленных разделах/элементах, придется открывать каждый элемент и транслитерировать название вручную.
В форме редактирования инфоблока укажите правильные пути к просмотру элемента инфоблока и раздела (если используются).
Теперь адреса страниц на материалы инфоблока имеют удобный читабельный вид.
Пример настройки ЧПУ в новостном инфоблоке
Важно запомнить!
Обратите внимание! При настройке ЧПУ значения в полях Раздел и Детальная информация должны различаться по уровню вложенности или способу формирования ссылок.
Если ссылки на разделы и элементы будут иметь одинаковый вид http://сайт.ru/catalog/символьный_код/ , то возникнет конфликт — компонент не сможет определить, открывать ему по ссылке раздел или элемент.

Поэтому в настройках адресов должен быть разный уровень вложенности. А если уровень вложенности нужен одинаковый, то используйте префиксы (или постфиксы) при формировании ссылок. Например, в поле Раздел укажите section-#SECTION_CODE#/ , а в поле Детальная информация — detail-#ELEMENT_CODE#/ .
Заключение
Для настройки человеко-понятных адресов необходимо:
- включить поддержку ЧПУ в компоненте;
- задать настройки ЧПУ для страниц и разделов;
- задать символьные коды для страниц и разделов.