phone

ЧПУ компонентов. Добавление динамических правил

1 июля 2018
3380

ЧПУ

(человеко-понятный URL) из себя представляет набор правил составленных с помощью PERL-совместимых регулярных выражений (почитать о них), они расположены в файле urlrewrite.php корня сайта.

Примерно такого содержания:

$APPLICATION->IncludeComponent("bitrix:news", "", array(
	...
	"SEF_URL_TEMPLATES" => array(
		"detail" => "#ELEMENT_ID#/",
		//соответствует файлу "detail.php" в папке шаблона компонента 
		"news" => "",
		//соответствует файлу "news.php" 
		"rss" => "rss/",
		//соответствует файлу "rss.php" 
		"my_section" => "my/",
		//соответствует файлу "my_section.php"
		//"my/" - ЧПУ адрес раздела 
		...
	),
	...
));

При добавлении некого правила в параметры компонента в раздел ЧПУ при сохранении у нас обновляется содержимое файла urlrewrite.php. Правила при этом сортируются по длине строки 'CONDITION' (в данном случае #^/services/#), по принципу чем длиннее правило тем раньше оно добавляется, т.к. предполагается, что оно более детальное. Поэтому стоит создавать правила в единообразной форме — особенно если в дальнейшем планируется доработка сайта на битрикс и расширение структуры проекта.

В процессе перехода на сайта по некому адресу (физически которого не существует!), мы практически сразу попадаем на проверку соответствует ли адрес какому-либо правилу в urlrewrite.php, как только находится соответствие выдается соответствующая страница 'PATH'. Такие механики особенно важно учитывать при создании сайтов, где изначально закладывается корректная логика маршрутизации и структуры URL.

Через административную панель можно редактировать правила в разделе Настройки > Настройки продукта > Обработка адресов > Правила

Следует помнить, что в случае самостоятельно редактирования urlrewrite.php сортировка не происходит, условия проверяются в той последовательности в которой они записаны. Ошибки в этом файле могут приводить к некорректной работе сайта, поэтому при сложных случаях рекомендуется проводить технический аудит сайта.

Более подробно можно почитать о ЧПУ на сайте перейти

Добавление динамических разделов

У разработчиков часто возникает необходимость в создании динамических разделов, т.е. без существующей физической папки на диске, соответствующей данному разделу. Решить эту проблему можно с помощью следующих методов:

  • Через параметры компонента:

    Стоит просто добавить в массив параметра "SEF_URL_TEMPLATES", передаваемого компоненту, свои разделы:

    $APPLICATION->IncludeComponent("bitrix:news", "", array(
    	...
    	"SEF_URL_TEMPLATES" => array(
    		"detail" => "#ELEMENT_ID#/",
    		//соответствует файлу "detail.php" в папке шаблона компонента 
    		"news" => "",
    		//соответствует файлу "news.php" 
    		"rss" => "rss/",
    		//соответствует файлу "rss.php" 
    		"my_section" => "my/"
    		//соответствует файлу "my_section.php",
    		//"my/" - ЧПУ адрес раздела
    		...
    	),
    	...
    ));

    После этого стоит создать файл "my_section.php" в папке шаблона компонента, на который мы будем попадать по примерно такому адресу "http://site.ru/my/".

    Следует создать (изменить) в папке шаблона файл ".parameters.php" добавив:

    $arTemplateParameters['SEF_MODE']["my_section"] = array(
    	"NAME" => "Мой раздел",
    	"DEFAULT" => "my/",
    	"VARIABLES" => array(),
    );

    Также стоит не забыть добавить уже существующий разделы, т.к. массив $arTemplateParameters['SEF_MODE'] переопределяет существующие значения.

    $arTemplateParameters['SEF_MODE']["news"] = array(
    	"NAME" => "News",
    	"DEFAULT" => "news/",
    	"VARIABLES" => array(),
    );
    $arTemplateParameters['SEF_MODE']["section"] = array(
    	"NAME" => "Разделы",
    	"DEFAULT" => "",
    	"VARIABLES" => array("SECTION_ID"),
    );
    и т.д.
  • Через добавление правила ЧПУ

    Добавив следующее:

    $APPLICATION->IncludeComponent("bitrix:news", "", array(
    	... 
    	"SEF_URL_TEMPLATES" => array(
    		...
    		"news" => "news1/|news2/",
    		//соответствует файлу "news.php" 
    		...
    	),
    	...
    ));

    Мы будем направляться на файл "news.php" со следующих адресов "http://site.ru/news1/" и "http://site.ru/news2/". А далее уже разбирая адрес динамически менять содержимое страницы.

Почему мы?

Концентрация
Работаем исключительно с 1С-Битрикс и Битрикс24, без других CMS
Опыт в числах
200+ проектов, 85% клиентов сотрудничают с нами годами
Статус
Резиденты ПВТ и бизнес партнёр Битрикс24 и 1С-Битрикс
Скорость
Берёмся за срочные задачи почти сразу, не откладывая их в «очередь»
Прозрачность
Фиксируем бюджет и дедлайны, ведём тайм-трекинг и отчётность
Поддержка
Не бросаем проект. Развиваем и адаптируем под рост бизнеса
поддержка
поддержка

Хотите пообщаться о задаче?

Оставьте нам заявку и мы свяжемся с вами, чтобы определить задачи, фронт работы и стоимость будущего проекта
Оставить заявку

Наши услуги

Мы компания, умеющая не только разрабатывать сайты, но и хорошо выполняем роль субподрядчика на средних и больших проектах. Разрабатываем и внедряем решения на базе 1С-Битрикс / Битрикс24. Всегда боремся за успешное доведение проекта до финала, гибко планируя производственный график.

Разработка сайтов на 1С‑Битрикс
Сделаем крутой сайт для вашего бизнеса с любым функционалом. Корпоративные сайты, сайты-визитки, интернет-магазины, порталы для B2B
Разработка сложных сайтов и проектов
Разрабатываем сложные сайты и веб-системы с индивидуальной архитектурой, интеграциями с 1С, CRM и ERP, а также расчётом на высокую нагрузку.
Разработка веб-приложений
Разрабатываем веб-приложения со сложной логикой, интеграциями и высокими требованиями к производительности.
Интеграция МойСклад и Битрикс24
Интегрируем МойСклад с Bitrix24 и сайтом так, чтобы заказы, остатки и статусы передавались автоматически — без ручной работы и ошибок.
Интернет магазин + CRM
Интеграция интернет-магазина на 1С-Битрикс с CRM Битрикс24: автоматизация заказов, контроль процессов и рост продаж.
Доработка Bitrix24: индивидуальные решения
Сделаем CRM Битрикс24 удобнее: интеграции с сервисами, автоматизация процессов, разработка дополнительного функционала или приложений
Техническая поддержка сайтов на 1С-Битрикс
Быстро решаем задачи и устраняем ошибки. Следим за стабильной работой сайта, обновляем, улучшаем и защищаем его от сбоев. Ваш сайт работает — вы занимаетесь бизнесом
Техническая поддержка и сопровождение CRM Битрикс24
Быстро решаем задачи и устраняем ошибки. Следим за стабильной работой сайта, обновляем, улучшаем и защищаем его от сбоев. Ваш сайт работает — вы занимаетесь бизнесом
Внедрение CRM Битрикс24
Внедрим и настроим Битрикс24 так, чтобы вам было удобно работать. Настроим интерфейс,  автоматизацию, интеграции и всё, что нужно для эффективной работы
Доработка сайтов на 1С-Битрикс
Сделаем CRM Битрикс24 удобнее: интеграции с сервисами, автоматизация процессов, разработка дополнительного функционала или приложений
Перенос данных Битрикс24 из облака в коробку
Перенос Битрикс24 из облачной версии в коробку, импорт данных и настроек.
Перенос сайта с другой CMS/конструктора на Битрикс
Перенесем ваш сайт со всеми данными на CMS 1С-Битрикс. Без ошибок, с сохранением всех данных и с исправлением существующих ошибок.
Сайты на шаблонах АСПРО, разработка и кастомизация 
Использование шаблонов АСПРО позволяет создавать мощные, гибкие и функциональные интернет-магазины, корпоративные сайты и порталы.
Технический аудит сайта
Выявление и исправление технических ошибок, анализ сервера, архитектуры сайта, проверка безопасности и обнаружение уязвимостей.
Интеграции Bitrix24 с сервисами для бизнеса
Подключаем телефонию, мессенджеры, 1С/ERP, маркетплейсы, рассылки, оплату и доставку.
Аудит юзабилити, UX/UI
Анализ сайта с точки зрения пользователя. Проверка удобства использования, выявление ошибок и проблем в отображении элементов.
Разработка дизайна вебсайта
Создание дизайна сайта с нуля, сохранение структуры сайта, учет имеющегося контента.
Редизайн сайта
Редизайн сайта без изменения структуры — обновляем визуал и аккуратно работаем с текущим контентом.

Наши клиенты

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

Artox Mitgroup Алло Филдс Глобал Инжиниринг Vizavi керамика Xistore Mulisport roast
Rulez Микроэлектроника 97 Уральский гранит Save carrency Стоматология Стомика mi by Garantis.trade Kudel Sante

Наши новости и публикации

CRM в Беларуси: что показало исследование рынка 2026
CRM в Беларуси: что показало исследование рынка 2026

Узнайте результаты исследования MASMI и возможности внедрения и доработки CRM для бизнеса

BANT: как квалифицировать лиды и выстроить управляемые продажи в Bitrix24
BANT: как квалифицировать лиды и выстроить управляемые продажи в Bitrix24

Рассказываем, что такое BANT, почему он не работает как навык и как встроить его в CRM так, чтобы система сама расставляла приоритеты

Улучшение UX сайта
Как улучшить UX сайта: 30 способов повысить удобство и конверсию

Как улучшить UX сайта и перестать терять заявки из-за неудобства интерфейса. Разбираем 30 практических способов: от первого экрана и структуры страницы до форм, навигации и мобильной версии.