Описание простого регулярного выражения со скриншота
|
---|
Что означают метасимволы (символы, обозначающие группы других символов) в шаблонах? Например, в выражении "#^/index/([0-9]+)/([0-9]+)/#" :
Таким образом, мы сформировали строку адреса, которая всегда начинается с /index/, а дальше возможен набор из любых чисел. Например: /index/35/12/. В правиле указаны параметры вызова страницы SECTION_ID=$1&ELEMENT_ID=$2. Что такое $1 и $2? Так принято обозначать переменные в регулярных выражениях. Значением $1 будут первые круглые скобки из условия ([0-9]+), а $2 – вторые по счёту круглые скобки ([0-9]+). Счёт ведётся слева направо. Таким образом, если мы впишем в адресную строку mysite.ru/index/35/12/, будет вызвана страница с параметрами mysite.ru/books/index.php?SECTION_ID=35&ELEMENT_ID=12. |
Обработка адресов
Обработка адресов применяется для того, чтобы скрипт мог отвечать не только по своему физическому, но и по любому другому указанному адресу.
Видеоурок
Правила обработки адресов
Правила обработки адресов настраиваются отдельно для каждого сайта и каждое из них должно содержать уникальное в рамках сайта условие выполнения. К примеру, у вас есть скрипт, лежащий в файле /catalog/index.php и отвечающий по адресу с параметром id: https://mysite.ru/catalog/index.php?id=15. C помощью правил обработки адресов, можно сделать так, чтобы он отвечал ещё и по адресу: https://mysite.ru/catalog/15.php.
Управление правилами обработки адресов производится в административном разделе на странице Настройки > Настройки продукта > Обработка адресов > Правила обработки. Здесь вы найдете список всех правил, сможете создать новое или отредактировать существующее:
При необходимости работать с ними можно и вручную в файле urlrewrite.php в корневой папке сайта.
Важно понимать, что дополнительный адрес, по которому будет отвечать скрипт, не должен физически существовать на сервере. Если такой адрес (файл) существует, то в приоритете будет вызов скрипта по нему. Переадресация в таком случае не сработает.
Зачем это нужно? Так вы можете сократить длину ссылки или открывать подходящий материал сайта для старой страницы, которую вы уже удалили, но уверены, что где-то остались ссылки на неё. А ещё правила обработки адресов работают при настройке ЧПУ в компонентах.
Форма создания
По нажатии на кнопку Новая запись требуется выбрать сайт, для которого создаётся правило. После открывается форма создания:
- Условие – условие, по которому будет работать правило обработки адресов. Задаётся с помощью регулярного выражения. Простыми словами, это тот самый несуществующий адрес, по которому будет открываться указанный ниже файл;
- Компонент – полное имя компонента (пространство_имен:имя_компонента), для которого будет работать правило. Это поле заполняется автоматически, при настройке ЧПУ в компонентах;
- Файл – полный путь к странице (файлу), которая должна быть показана;
- Правило – правило вызова страницы, путь к которой указан в поле выше. В большинстве случае здесь вы будете прописывать параметры, с которыми будет вызвана страница. На скриншоте выше это SECTION_ID и ELEMENT_ID.
Человеко-понятные адреса
Механизм переопределения адресов задействован и для поддержки
ЧПУ
ЧПУ (англ. Friendly URL) – веб-адреса, удобные для восприятия человеком (а также систем и методов построения таких адресов). Является аббревиатурой от словосочетания «человеко-понятный урл» (где «урл» – жаргонное обозначение URL).
Подробнее...
(человеко-понятных URL). Эта функция встроена во все комплексные
компоненты
Компонент – это программный код, оформленный в визуальную оболочку, выполняющий определённую функцию какого-либо модуля по выводу данных в Публичной части. Мы можем вставлять этот блок кода на страницы сайта без непосредственного написания кода. Подробнее...
и некоторые простые. Таким образом её можно использовать для переопределения любых URL, как обычных со статической информацией, так и связанных с компонентами (динамической информацией).
При добавлении на страницу компонента с поддержкой ЧПУ (если файл сохраняется
с помощью API
Для хранения идентификаторов элементов/разделов информационных блоков удобнее всего использовать поле Символьный код.
Подробнее...
) автоматически создается правило переопределения адреса, в котором заполнено поле Компонент. Нужно учитывать, что если страница создаётся не стандартными способами системы, а записывается на сервер (например, через SFTP), то необходимо выполнить пересоздание правил на странице со списком.
Материалы по теме
- Документация:
- Уроки:
- ЧПУ в компонентах (курс «Разработчик Bitrix Framework»);
- Вложенные ЧПУ (курс «Контент-менеджер»).
- Полезные статьи:
и Ваше мнение важно для нас