Редиректы на сайте на 1С-Битрикс
Редирект — это серверное перенаправление с одного URL на другой. Он используется при смене адресов страниц, переходе сайта на HTTPS, объединении версий с
wwwи без него, а также при переносе сайта на другой домен
В проектах на 1С-Битрикс редиректы в большинстве случаев настраиваются на уровне сервера. Административная часть CMS не предназначена для управления глобальными переадресациями и участвует в этом процессе лишь в отдельных, ограниченных сценариях.
Основные типы редиректов
На практике используются HTTP-редиректы с кодами 3xx.
Для SEO-задач применяется почти исключительно 301 (Moved Permanently) — постоянный редирект, который сообщает поисковым системам, что страница или ресурс переехали навсегда и нужно учитывать новый адрес.
Временные редиректы (302, 307) используются редко и, как правило, не подходят для задач индексации.
Основной способ настройки редиректов
Основной способ настройки редиректов — в файле .htaccess, если такой способ поддерживается сервером (Apache или совместимая конфигурация).
Файл .htaccess расположен в корне сайта и обрабатывается веб-сервером до загрузки Битрикса, поэтому именно через него настраиваются все глобальные правила.
Через .htaccess реализуются:
-
редиректы с
httpнаhttps; -
приведение сайта к одной доменной версии (
www/ безwww); -
редиректы домена;
-
переадресация отдельных URL.
Переход с HTTP на HTTPS
Пример базового редиректа с HTTP на HTTPS:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Это правило означает, что любой запрос по HTTP будет перенаправлён на тот же адрес по HTTPS с кодом 301.
Приведение сайта к версии без www
Чтобы сайт не открывался одновременно по адресам с www и без него, используется редирект на одну выбранную версию.
Пример редиректа с www на без www:
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
После этого все запросы вида https://www.site.ru/... будут перенаправляться на https://site.ru/....
Редирект отдельных страниц
При изменении структуры сайта или переносе отдельных страниц используются точечные редиректы.
Пример:
Redirect 301 /old-page/ https://site.ru/new-page/
Такой редирект сообщает поисковым системам, что страница перемещена навсегда и должна быть заменена новым адресом.
Редиректы с более сложной логикой
Не все задачи можно решить через .htaccess. Если решение о редиректе зависит от данных, которые доступны только после выполнения PHP-кода, используется PHP-редирект.
Типовые случаи:
-
динамические страницы (товары, новости, статьи);
-
редиректы в зависимости от параметров запроса;
-
проверка данных из базы (активность элемента, статус товара);
-
условная логика, зависящая от контекста страницы.
В таких ситуациях редирект выполняется уже после загрузки Битрикса.
Где в Битриксе выполняются PHP-редиректы
На практике PHP-редиректы чаще всего размещаются непосредственно в PHP-файлах страниц, обычно в index.php конкретного раздела или страницы.
Также редиректы могут выполняться:
-
в коде компонента или его шаблона;
-
в общих файлах инициализации (
init.php) — для более глобальной логики.
Наиболее распространённый и безопасный вариант — редирект в index.php, когда логика привязана к конкретному URL.
Пример PHP-редиректа:
if ($needRedirect) {
LocalRedirect('/new-page/', true, '301 Moved Permanently');
}
Редирект должен выполняться до вывода HTML-контента, иначе заголовки уже будут отправлены и переадресация не сработает.
Когда использовать какой подход
Если редирект можно определить по самому URL и он не зависит от данных — используется .htaccess.
Если редирект зависит от состояния данных или условий выполнения — используется PHP-редирект.
Кому имеет смысл настраивать редиректы
Простые и локальные редиректы можно реализовать самостоятельно.При более сложных сценариях — глобальные правила, работа с доменами, HTTPS, динамической логикой или прокси-окружением — настройку редиректов обычно целесообразно доверять специалисту, чтобы избежать зацикливаний, конфликтов и проблем с индексацией.
Смотрите также: