Настройка ЧПУ в новостной ленте 1c-bitrix
Опубликовано 22 Янв 2010
Поводом для написания статьи стали многочисленные темы на официальном форуме битрикса. Согласитесь, намного приятнее в адресной строке браузера видеть четко структурированный текст вместо непонятного набора символов.
Не спорю, практически все методы настройки описаны в документации\faq\темах форума. Но, не каждый пользователь проходит курс «Компоненты 2.0» и заходит в документацию для разработчиков. К тому же система поиска форума по слову «ЧПУ» выдает в топ обсуждения 2007-08 года, что на данный момент не очень актуально.
Сейчас я постараюсь просто и понятно описать весь процесс настройки применительно к «чистому» сайту (без demo-данных). Предполагается, что Вы уже умеете создавать инфоблоки:)
Выделим 4 способа организации новостной ленты, и для каждого из них опишем метод создания человеко-понятных-урл:
- использование комплексного компонента и адреса вида /news/1/2/, где новость характеризуют числовые идентификаторы – id раздела (1) и id новости (2)
- совокупное использование компонентов «лента новостей» и «новость детально».
Адреса вида /news/2/, где 2 – id новости. - использование комплексного компонента и адреса вида /news/razdel/novost/, где конкретный элемент характеризуют символические идентификаторы
- совокупное использование компонентов «лента новостей» и «новость детально». Адреса вида /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#/
На сегодня все, подписывайтесь, скоро выйдут остальные части статьи!





здравствуйте! на сайте некоторые правила в урлреврайт настроены нестандартно и затираются при каких -либо действиях админа по правке компонентов или настройке модулей.. сталкивались с таким? просто кошмар какой-то (((
С такой проблемой не сталкивался, обратитесь в техподдержку, они точно скажут почему правила затираются.
а можете подсказать как битрикс переводит русскоязычные названия в короткие англоязычные? Пишешь «новости» он сразу «news» делает а не «novosti». Как? И где код который такое проворачивает?
Переводится с помощью гугла. В настройках какого-то из модулей (вроде главного модуля) устанавливается.
Где описание четвертого способа?????????????????????????????????