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

Новостная лента

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

Не спорю, практически все методы настройки описаны в документации\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#/

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

Если вам понравилась статья, подписывайтесь на обновления блога по rss или присоединяйтесь в twitter

Поделиться ссылкой с друзьями:

Метки: ,

Категории: Bitrix

Комментарии (5)

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

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

  3. Илья:

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

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

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

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