Традиционно URL в Битрикс обрабатывались через urlrewrite.php и компоненты.
Новый механизм Роутинга (доступен в последних версиях ядра) позволяет описывать маршруты в стиле Laravel или Symfony, привязывая URL напрямую к контроллерам или анонимным функциям.
Шаг 1: Включение роутинга
Создайте файл .htaccess или настройки Nginx так, чтобы запросы перенаправлялись на bitrix/routing_index.php (если файл не найден). В стандартной поставке Битрикс это уже настроено.
Шаг 2: Подключение конфигурации
В файле /bitrix/.settings.php (или /local/.settings.php) нужно указать, какие файлы маршрутов подключать.
'routing' => [
'value' => [
'config' => ['web.php', 'api.php']
],
'readonly' => true,
],Система будет искать эти файлы в /local/routes/ (или /bitrix/routes/).
Шаг 3: Описание маршрутов (web.php)
Создадим файл /local/routes/web.php
use Bitrix\Main\Routing\RoutingConfigurator;
return function (RoutingConfigurator $routes) {
// Простой маршрут с замыканием
$routes->get('/hello/{name}', function ($name) {
return "Привет, {$name}!";
});
// Маршрут к контроллеру
$routes->get('/api/user/{id}', [\My\Module\Controller\User::class, 'getAction']);
// Группировка маршрутов
$routes->prefix('catalog')->group(function (RoutingConfigurator $routes) {
$routes->get('list', function() {
return "Список товаров";
});
$routes->get('detail/{id}', function($id) {
return "Товар #{$id}";
});
});
};Как это работает
- При запросе /hello/world сработает первый маршрут. Битрикс сам подключит пролог, выполнит функцию и выведет «Привет, world!» в буфер (с подключением эпилога, если нужно).
- Параметры из URL ({name}, {id}) передаются в аргументы функции или действия контроллера.
Вывод:
Роутинг — идеальный инструмент для создания API, лендингов или спецпроектов внутри Битрикс, когда не хочется создавать громоздкую структуру из компонентов и инфоблоков ради простой логики.
Routing Битрикс, роутинг D7, routes.php, маршрутизация, красивые url, RoutingConfigurator, контроллеры.