Поводом для написания статьи стали многочисленные темы на официальном форуме битрикса. Согласитесь, намного приятнее в адресной строке браузера видеть четко структурированный текст вместо непонятного набора символов.

Не спорю, практически все методы настройки описаны в документации\faq\темах форума. Но, не каждый пользователь проходит курс «Компоненты 2.0» и заходит в документацию для разработчиков. К тому же система поиска форума по слову «ЧПУ» выдает в топ обсуждения 2007-08 года, что на данный момент не очень актуально.

Сейчас я постараюсь просто и понятно описать весь процесс настройки применительно к «чистому» сайту (без demo-данных). Предполагается, что Вы уже умеете создавать инфоблоки:)

Выделим 4 способа организации новостной ленты, и для каждого из них опишем метод создания человеко-понятных-урл:

  1. использование комплексного компонента и адреса вида /news/1/2/, где новость характеризуют числовые идентификаторы – id раздела (1) и id новости (2)
  2. совокупное использование компонентов «лента новостей» и «новость детально».
    Адреса вида /news/2/, где 2 — id новости.
  3. использование комплексного компонента и адреса вида /news/razdel/novost/, где конкретный элемент характеризуют символические идентификаторы
  4. совокупное использование компонентов «лента новостей» и «новость детально». Адреса вида /news/novost/

Инструкция к способу №1:

— настраиваем обработчик 404 ошибки (отсутсвие запрашиваемой страницы).

Для этого в файле /.htaccess добавляем запись

ErrorDocument 404 /404.php

Необходимо изменить файл /404.php и добавить в самое начало

include_once($_SERVER['DOCUMENT_ROOT']. '/bitrix/modules/main/include/urlrewrite.php' );

В случае, когда известно что для Apache используется модуль mod_rewrite, в /.htaccess записываем

<IfModule mod_rewrite.c>
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$ 
RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L] 
</IfModule>

— создаем тип инфоблока, сам инфоблок для хранения новостей, разделы инфоблока, и собственно добавляем информацию. Важно помнить, что если планируется использовать разделы, то необходимо отметить в качестве обязательного поля привязку к разделам.

Необходимое поле

— добавляем на необходимую страницу комплексный компонент «новости». В нем указываются необходимые параметры вывода, и, самое необходимое, включается режим ЧПУ.

Для инфоблока с разделами:

Настройка ЧПУ битрикс с разделами

Без разделов:

Настройка ЧПУ битрикс

Каталог ЧПУ — как правило указывается каталог где лежит компонент. Но можно использовать и любой другой путь (даже не существующий)

После проделанных несложных манипуляций заработает штатный механизм ЧПУ для комплексного компонента.

Стоит напомнить, что для корректной работы поиска необходимо в настройках инфоблока правильно прописать параметры URL. Для нашего примера они будут такими:
URL страницы информационного блока: #SITE_DIR#/news/
URL страницы раздела: #SITE_DIR#/news/#SECTION_ID#/
URL страницы детального просмотра: #SITE_DIR#/news/#SECTION_ID#/#ELEMENT_ID#/

На сегодня все, подписывайтесь, скоро выйдут остальные части статьи!

Больше статей и материалов по web-разработке в tg-канале - подписывайтесь!

Подписаться в telegram

6 комментариев “Настройка ЧПУ в новостной ленте 1c-bitrix

  1. concurent

    здравствуйте! на сайте некоторые правила в урлреврайт настроены нестандартно и затираются при каких -либо действиях админа по правке компонентов или настройке модулей.. сталкивались с таким? просто кошмар какой-то (((

  2. Алексей Валеев

    С такой проблемой не сталкивался, обратитесь в техподдержку, они точно скажут почему правила затираются.

  3. Илья

    а можете подсказать как битрикс переводит русскоязычные названия в короткие англоязычные? Пишешь «новости» он сразу «news» делает а не «novosti». Как? И где код который такое проворачивает?

  4. Алексей Валеев

    Переводится с помощью гугла. В настройках какого-то из модулей (вроде главного модуля) устанавливается.

  5. Какаяразница

    Где описание четвертого способа?????????????????????????????????

  6. Ashumova

    Подскажите, пожалуйста, в чем может быть еще проблема, что детальная новость не открывается или открывается не корректно

    У меня вывод идет в блог,
    прописала в инфо-блоке
    #SITE_DIR#/blog/
    #SITE_DIR#/blog/#ELEMENT_CODE#/

    в настройках компонента bitrix:news
    /blog/
    #ELEMENT_CODE#/

    в urlrewrite.php
    стоит
    13 =>
    array (
    ‘CONDITION’ => ‘#^/blog/#’,
    ‘RULE’ => »,
    ‘ID’ => ‘bitrix:news’,
    ‘PATH’ => ‘/blog/index.php’,
    ‘SORT’ => 100,
    ),

    в blog/index.php

    «SEF_URL_TEMPLATES» => array(
    «news» => «»,
    «section» => «»,
    «detail» => «#ELEMENT_CODE#/»,

    «SEF_MODE» => «Y»,
    «SEF_FOLDER» => «/blog/»,

Добавить комментарий

Ваш адрес email не будет опубликован.