В современной веб-разработке, особенно при работе с CMS 1С-Битрикс, грамотная настройка редиректов — это не просто техническая деталь, а важный элемент SEO-стратегии и удобства пользователей. Неправильные или отсутствующие редиректы могут привести к дублированию контента, снижению позиций в поисковой выдаче и ухудшению пользовательского опыта.
В этой статье рассмотрим типичные задачи, связанные с редиректами, и как их решить с помощью правил в файле .htaccess.
Редирект с www на без www (или наоборот)
Поисковые системы воспринимают https://www.example.com и https://example.com как два разных сайта. Чтобы избежать дублей, нужно выбрать канонический вариант и перенаправлять все запросы на него.
Вариант А: С www на без www
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
Вариант Б: С без www на с www
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
Удаление index.php из URL
В 1С-Битрикс по умолчанию многие страницы доступны как напрямую (/about/), так и через index.php (/about/index.php). Это создаёт дубли. Чтобы оставить только «чистый» URL:
# Редирект с index.php (кроме админки)
RewriteCond %{REQUEST_URI} ^(.*)/index\.php$
RewriteCond %{THE_REQUEST} !bitrix/admin/
RewriteRule ^(.*)index\.php$ https://%{HTTP_HOST}/$1 [R=301,L]
bitrix/admin/ — без него вы можете потерять доступ к административной части сайта.Устранение множественных слэшей
Иногда в URL попадают лишние слэши: https://example.com//about//. Это не только некрасиво, но и может вызывать ошибки или создавать дубли.
# Исправление множественных слэшей
RewriteCond %{REQUEST_URI} ^(.*?)\/{2,}(.*?)$
RewriteRule . %1/%2 [L,R=301]
# Дополнительная защита от // в начале пути
RewriteCond %{THE_REQUEST} //
RewriteRule .* /$0 [R=301,L]
Эти правила нормализуют URL, оставляя только один слэш между частями пути.
Добавление завершающего слэша к «каталогам»
В 1С-Битрикс разделы сайта обычно представляют собой виртуальные директории, и для них принято использовать завершающий слэш (/about/, а не /about). Это помогает избежать конфликтов с файлами и соответствует общепринятой практике.
# Добавление слэша к URL, если это не файл/ссылка/директория
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.*/[^/\.]+)$
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1/ [R=301,L]
Правило проверяет, что запрашиваемый путь — не физический файл или директория, и добавляет слэш, если его нет.
Почему важно правильно настраивать редиректы на сайте
Грамотно настроенные редиректы — это «невидимая» основа стабильного и SEO-дружелюбного сайта на 1С-Битрикс. Они помогают избежать дублей, улучшают читаемость URL и делают навигацию интуитивной.
Интегрируйте эти правила в свой проект — и ваш сайт станет надёжнее как для пользователей, так и для поисковых систем.
Примечание: Перед внесением изменений в рабочий .htaccess обязательно создайте его резервную копию и протестируйте изменения на тестовом окружении. Или купите уже готовый модуль по SEO редиректам.
Пример полного блока правил
# Включаем механизм перенаправлений
RewriteEngine On
# 1. Редирект с www на без-www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
# 2. Редирект с index.php
RewriteCond %{REQUEST_URI} ^(.*)/index\.php$
RewriteCond %{THE_REQUEST} !bitrix/admin/
RewriteRule ^(.*)index\.php$ https://%{HTTP_HOST}/$1 [R=301,L]
# 3. Устранение множественных слэшей
RewriteCond %{REQUEST_URI} ^(.*?)\/{2,}(.*?)$
RewriteRule . %1/%2 [L,R=301]
# 4. Добавление завершающего слэша
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.*/[^/\.]+)$
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1/ [R=301,L]