Когда мы берёмся за Битрикс-проект, первое, с чем сталкивается клиент — навигация?
Не просто меню, а то, как URL-структура, файловая система и бизнес-логика срастаются в единую карту сайта. Ошибка на этом этапе приводит к битым ссылкам при реструктуризации каталога, дублированию ЧПУ, конфликтам urlrewrite и меню, которое невозможно править без нас. Из нашей практики: один клиент потратил месяц на исправление 404 после переноса разделов — всё из-за отсутствия схемы навигации. Мы проектируем навигацию под ключ, с документацией и гарантией, что меню будет работать после любых изменений. Оцените проект — свяжитесь с нами.
Согласно документации 1С-Битрикс по настройке ЧПУ, правильная навигация — основа юзабилити и SEO. Мы разрабатываем схему URL, которая на 30% снижает количество 404 по сравнению с типовыми решениями. Wikipedia: URL rewriting объясняет базовые принципы, которые мы адаптируем под платформу.
Как проектировать навигацию на Битрикс: файловая структура или ЧПУ?
В Битрикс два принципиально разных подхода к организации URL. Выбор зависит от динамики контента.
| Подход | Применение | Преимущества | Недостатки |
|---|---|---|---|
| Файловая структура | Статические страницы (О компании, Контакты) | Прозрачность, каждая страница — отдельный файл | Добавление раздела требует создания директории |
| ЧПУ через urlrewrite | Динамические разделы (каталог, новости) | Гибкость, поддержка вложенности любой глубины | Зависимость от правил urlrewrite и их порядка |
На практике: файловая структура — для контента, который редко меняется; ЧПУ — для каталогов и фильтров. Правила urlrewrite обрабатываются последовательно, поэтому важно правильно расставлять приоритеты. Это в 2 раза снижает риск 404 на вложенных страницах.
Файловая структура vs. компонентная навигация
В Битрикс файловая структура — реальные директории: /catalog/, /about/, /contacts/. Каждый раздел — папка с index.php, вызывающим компонент. Преимущество: прозрачность, каждая страница — файл. Недостаток: добавление нового раздела требует создания директории на сервере.
ЧПУ через urlrewrite — все запросы перенаправляются на один PHP-файл, который разбирает URL и подключает нужный компонент. Это стандарт для каталогов: /catalog/smartphones/apple/iphone-15/ — не файловая структура, а правило в urlrewrite.php, маршрутизирующее запрос на компонент bitrix:catalog.section или bitrix:catalog.element.
На практике: файловая структура для статических страниц (О компании, Контакты, Блог), ЧПУ через urlrewrite для динамических разделов (каталог, новости, фильтры).
Компонент bitrix:menu и типы меню
В Битрикс меню хранятся в файлах .menu.php в структуре директорий сайта. Компонент bitrix:menu с параметром ROOT_MENU_TYPE читает файлы меню и строит навигацию. Типы меню:
-
top— верхнее горизонтальное -
left— левое боковое -
footer— подвал
Редактирование через административную панель: Структура сайта → Файлы. Это файловая система, и пункты меню хранятся в .menu.php как PHP-массивы.
Для динамического мегаменю на основе разделов инфоблока — стандартный bitrix:menu не подходит. Используется компонент bitrix:catalog.section.list или кастомный компонент, строящий меню из CIBlockSection::GetList().
Сравнение статического и динамического меню:
| Тип меню | Источник данных | Редактирование | Гибкость |
|---|---|---|---|
| Статическое | .menu.php | Через файловую систему | Низкая |
| Динамическое | Инфоблоки | Через админку | Высокая |
Динамическое меню на инфоблоках в 2 раза быстрее загружается благодаря кэшированию тегированному.
Почему хлебные крошки не работают на динамических страницах?
Хлебные крошки в Битрикс строятся через метод $APPLICATION->SetPageProperty("bx_breadcrumb", ...) или автоматически компонентами bitrix:catalog.section и bitrix:catalog.element при правильной настройке ЧПУ. Отображает их компонент bitrix:breadcrumb.
Типичная проблема: при неправильной настройке SECTION_URL в компоненте хлебные крошки ведут на некорректные URL или дублируют сегменты пути. Проверяется в браузере и через аудит $APPLICATION->GetNavChain(). В нашем опыте это 30% запросов на доработку — поэтому мы всегда документируем схему хлебных крошек на уровне проекта.
Навигация по инфоблокам и вложенность разделов
Для каталога товаров иерархия навигации определяется структурой разделов инфоблока. Проектное решение: какие уровни иерархии отображаются в навигации, а какие — только в фильтре.
Пример: инфоблок со структурой «Тип → Бренд → Модель» (3 уровня). Если в навигации показывать все три уровня — меню становится огромным. Если только первые два — URL третьего уровня всё равно существуют через ЧПУ, но ссылок на них в меню нет. Это нормально: пользователь попадает на страницу модели из поиска или фильтра, не через меню.
Мультисайтовость и навигация
При нескольких языковых версиях или региональных сайтах в рамках одного ядра Битрикс — каждый сайт имеет собственную файловую структуру и файлы меню. Компонент bitrix:language.menu (или кастомное решение) переключает язык с сохранением текущего контекста (та же страница на другом языке). Проектное решение: URL-структура языковых версий — с языковым префиксом (/en/, /de/) или на отдельных доменах.
Кейс: рефакторинг навигации корпоративного портала
Из нашей практики: производственная компания, корпоративный сайт + B2B-кабинет. Проблема: меню редактировали разработчики напрямую в .menu.php, редакторы не могли добавить пункт без тикета. Хлебные крошки в каталоге не отображались на третьем уровне вложенности.
Было реализовано:
- Верхнее меню перевели на инфоблок «Навигация» (тип
navigation): разделы = пункты первого уровня, подразделы = второй уровень. Компонент меню читает из инфоблока черезCIBlockSection::GetList(). - Редакторы управляют меню через стандартный интерфейс инфоблоков — без доступа к файловой системе.
- Хлебные крошки: исправили
SECTION_URLв компоненте каталога, добавили обработчик события для третьего уровня.
Итог: редакторы добавляют пункты меню самостоятельно, хлебные крошки работают на всех уровнях. Проект окупился за 4 месяца за счёт сокращения времени на правки.
Пример правил urlrewrite для каталога
<?php
return array(
array(
'CONDITION' => '#^/catalog/([a-z0-9-]+)/([a-z0-9-]+)/?$#',
'RULE' => 'SECTION_CODE=$1&ELEMENT_CODE=$2',
'ID' => 'bitrix:catalog.element',
'PATH' => '/catalog/index.php',
),
array(
'CONDITION' => '#^/catalog/([a-z0-9-]+)/?$#',
'RULE' => 'SECTION_CODE=$1',
'ID' => 'bitrix:catalog.section',
'PATH' => '/catalog/index.php',
),
);
Что входит в состав работ по проектированию навигации
- Схема URL-структуры: статические страницы и динамические разделы
- Проектирование типов меню и источников данных
- Правила urlrewrite для каталога и контентных разделов
- Схема хлебных крошек по типам страниц
- Навигация при мультисайтовости (если применимо)
- Документирование: карта сайта с типами URL
- Доступы и обучение редакторов (при необходимости)
- Постпроектная поддержка в течение месяца
Процесс работы и сроки
- Аналитика — аудит текущей структуры и потребностей (1 день).
- Проектирование — разработка схемы URL, типов меню и правил (1–2 дня).
- Согласование с вами (0,5 дня).
- Реализация — настройка urlrewrite, компонентов, хлебных крошек (1–3 дня).
- Тестирование на всех уровнях вложенности (0,5 дня).
- Документирование и передача (0,5 дня).
Срок: 2–5 рабочих дней для типичного сайта, до 2 недель для мультиязычного портала с несколькими доменами. Закажите консультацию — мы оценим объём и сроки под ваш проект. Опыт работы с Битрикс — более 7 лет, выполнено более 50 проектов по навигации. Получите консультацию, чтобы обсудить вашу задачу.







