Middle Роутинг и контроллеры Обязательно

urlrewrite.php и ЧПУ

Классический механизм маршрутизации строится на файле urlrewrite.php, который перенаправляет обращения к ЧПУ-адресам на физические страницы с комплексными компонентами. Правила обрабатываются по регулярным выражениям (CONDITION) с учетом приоритета сортировки и длины шаблона, а сам файл urlrewrite.php обязательно должен версионироваться в Git.

Прогресс хранится в этом браузере. Войдите, чтобы сохранить его в аккаунте.

Что нужно понимать

  • 1
    Файл urlrewrite.php
  • 2
    Правила перезаписи URL

Материалы

Проверь себя

После переезда на новый сервер разделы каталога открываются, а карточки товаров и все ЧПУ-страницы отдают 404. Где искать?

В корне сайта нет /urlrewrite.php или .htaccess не отправляет несуществующие пути на /bitrix/urlrewrite.php. Файл правил обычно не попадает в git, потому что его пишет визуальный редактор при сохранении SEF-компонента; восстанавливается переиндексацией на странице «Обработка адресов».

Два правила с CONDITION #^/catalog/# и #^/catalog/brands/# и одинаковым SORT. Какое сработает для /catalog/brands/apple/ и почему?

Второе: при равном SORT ядро ставит выше правило с более длинным CONDITION. Стоит удлинить первое правило лишними символами в регулярном выражении — и бренды начнут открываться каталогом.

Правило нашло страницу catalog/index.php. Кто решает, показать список, раздел или карточку товара?

Комплексный компонент на этой странице: CComponentEngine::guessComponentPath() сопоставляет остаток адреса с SEF_URL_TEMPLATES из параметров компонента и заполняет переменные вроде SECTION_CODE и ELEMENT_CODE.

Чем маршрут D7 на контроллер отличается от правила urlrewrite.php для нового раздела сайта?

Правило urlrewrite.php всегда ведёт на физический файл с компонентом. Маршрут в /local/routes/web.php вызывает действие контроллера напрямую, без файла и без регулярного выражения в массиве, и параметры приходят аргументами метода.

Не сходится?

Спросите Домового: он знает документацию и материалы сайта по этой теме. Ответит сразу.

Кирилл Новожилов

Нужен живой разбор?

Консультация автора BXMax: созвон один на один, 90 минут на вашу задачу по теме «urlrewrite.php и ЧПУ».

Выбрать время Ближайшее: 10 ноября, вторник, 20:00–21:30 по Москве

Знаете материал лучше? Предложите ссылку: после проверки она появится в этом разделе.

Войти, чтобы предложить
Поделиться в Telegram
Мы используем файлы cookie для улучшения работы сайта. Продолжая использовать сайт, вы соглашаетесь с нашей политикой конфиденциальности.
AI Домовой

AI Домовой История

на связи

пишет…

Можно закрыть чат и перейти на другую страницу. Когда ответ будет готов, на кнопке Домового появится отметка.

Нет истории чатов
AI Домовой

Нужна авторизация

Войдите, чтобы задавать вопросы AI Домовому.

Войти