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: он знает документацию и материалы сайта по этой теме.
Знаете материал лучше?
Предложите ссылку: после проверки она появится в этом разделе.
Войти, чтобы предложить