Разработка модуля управления редиректами 1С-Битрикс
Мы часто сталкиваемся с ситуацией: после миграции сайта на новую структуру URL в Google Search Console появляются тысячи 404-ошибок. Старые адреса вида /catalog/product-123.html нужно перенаправить на новые /catalog/category/product-name/. Прописать 8000 редиректов в .htaccess — возможно, но Apache начинает тормозить при парсинге такого файла на каждый запрос, а редактировать его вручную — ад. Наш модуль управления редиректами решает эту проблему через БД с удобным интерфейсом, импортом из любого формата и аналитикой. Мы разработали уже более 50 таких модулей для клиентов из разных сфер: от интернет-магазинов до крупных корпоративных порталов. Наш опыт — 10+ лет в разработке на Битрикс, 500+ выполненных проектов. Мы гарантируем, что внедрение модуля сократит время на управление редиректами на 80% и избавит от головной боли с SEO-трафиком. Свяжитесь с нами, чтобы обсудить ваш проект.
Подробнее о проблемах .htaccess можно прочитать в Wikipedia.
Почему модуль лучше .htaccess
Apache заметно замедляется при количестве правил RewriteRule свыше 500–1000: файл парсится заново для каждого запроса, если не настроено кеширование. Nginx читает конфигурацию единожды при старте, но перезапуск его ради каждого нового редиректа в production невозможен.
Хранение правил в БД с обработкой на PHP — компромисс: чуть медленнее аппаратного Nginx-редиректа (на 20–30%), но позволяет управлять правилами в реальном времени, без рестарта сервисов. Плюс история изменений, статистика срабатываний, импорт/экспорт, и всё это в знакомой админке Битрикса.
Кешированный обработчик работает в 10 раз быстрее некешированного: время проверки редиректа для статического URL — менее 1 мс.
Что входит в работу
| Компонент | Описание |
|---|---|
| Таблица правил в БД | Поля: source, destination, код (301/302), флаг regex, приоритет, счётчик срабатываний |
| Обработчик OnPageStart | Проверка статических URL через O(1) массив, затем regex по приоритету |
| Кеширование | Тегированный кеш Bitrix с автоматическим сбросом при изменении правил |
| Импорт из .htaccess | Парсер регулярных выражений, импорт с предупреждением сложных условий |
| Импорт из CSV | Валидация дублей и циклических редиректов |
| Лог 404 | Таблица myvendor_redirect_404 с частотой обращений, кнопкой создания редиректа |
| Статистика | Сортировка по hits, выявление неиспользуемых правил |
| Документация | Описание структуры БД, API для интеграции, инструкция по эксплуатации |
Архитектура модуля
Таблица правил:
CREATE TABLE myvendor_redirect (
id SERIAL PRIMARY KEY,
source VARCHAR(500) NOT NULL,
destination VARCHAR(500) NOT NULL,
code SMALLINT NOT NULL DEFAULT 301,
is_regex BOOLEAN DEFAULT false,
priority INT DEFAULT 100,
hits INT DEFAULT 0,
active BOOLEAN DEFAULT true,
created_at TIMESTAMP DEFAULT NOW(),
created_by INT
);
CREATE UNIQUE INDEX idx_redirect_source ON myvendor_redirect(source) WHERE NOT is_regex;
CREATE INDEX idx_redirect_active ON myvendor_redirect(active, priority);
Обработчик. Правила загружаются в обработчик события OnPageStart. Статические правила (точное совпадение URL) проверяются первыми через isset по ассоциативному массиву — O(1). Регулярные выражения проверяются только если статического совпадения нет — итерация по отсортированному по priority массиву.
AddEventHandler('main', 'OnPageStart', [\MyVendor\Redirect\Handler::class, 'handle']);
Документация по событию OnPageStart доступна на dev.1c-bitrix.ru.
Кеширование правил. Весь список правил кешируется с тегированным кешем Bitrix. При изменении любого правила кеш сбрасывается. TTL кеша — 1 час как защита от забытого сброса.
Как работает импорт из .htaccess и CSV
После миграции у клиента обычно есть либо старый .htaccess, либо Excel со старыми и новыми URL. Модуль включает парсер обоих форматов.
Парсер .htaccess:
// Пример строки: RewriteRule ^old/(.*)$ /new/$1 [R=301,L]
preg_match('/^RewriteRule\s+\^([^\$]+)\$?\s+(\S+)\s+\[([^\]]+)\]/', $line, $m);
Модуль извлекает source, destination, код редиректа и флаг регулярного выражения. Правила со сложными условиями (RewriteCond) импортируются с предупреждением — их нужно проверить вручную.
Импорт редиректов из CSV:
- Подготовьте CSV-файл с колонками old_url;new_url;code.
- Загрузите файл в разделе «Импорт» модуля.
- Модуль проверит дубли и циклические ссылки.
- После успешной валидации правила будут добавлены в БД.
- Проверьте работу редиректов в логах 404.
Импорт CSV. Формат: old_url;new_url;code. Перед импортом — валидация: дубли источников, проверка на циклические редиректы (A → B → A), проверка доступности destination-URL (опционально, через HEAD-запрос).
Как обнаружить 404-ошибки
Модуль логирует 404-ответы в таблицу myvendor_redirect_404. В административном интерфейсе — список самых частых 404-адресов с количеством обращений, кнопкой «Создать редирект» прямо из этого списка. Это главный инструмент для работы с миграцией: видишь самые популярные несуществующие URL и создаёшь редиректы в один клик.
Статистика и аналитика
Каждое срабатывание правила увеличивает счётчик hits. В интерфейсе — сортировка правил по количеству срабатываний, выявление «мёртвых» правил (нет срабатываний за 90 дней — кандидаты на удаление).
Сроки разработки
| Масштаб | Состав | Срок |
|---|---|---|
| Базовый | Таблица правил + обработчик + интерфейс | 1,5–2 недели |
| Средний | + regex + импорт CSV/.htaccess + 404-лог | 3–4 недели |
| Расширенный | + валидация циклов + статистика + CDN-интеграция | 5–6 недель |
Для расчёта точной стоимости и сроков под ваш проект свяжитесь с нами — мы подготовим предложение. Внедрение модуля обеспечивает существенную экономию за счёт сокращения времени на поддержку SEO и сохранения трафика.
Технические детали реализации
- Для обработки OnPageStart используется Bitrix\Main\EventManager.
- Кеш сбрасывается через Bitrix\Main\Data\Cache::clearCacheByTag.
- Поддержка PHP 8.1+ и MySQL 5.7+.
Закажите модуль управления редиректами уже сегодня — получите консультацию с нашими специалистами. Мы поможем настроить импорт, проверить целостность и запустить кеширование.







