В каждой CMS системе есть свои особенности, свои плюсы и минусы. В 1C-Bitrix, также есть куча своих нюансов, об одном из них расскажу.

Избавляемся от дублей в Битрикс

Речь идет про Apache, или Apache/Nginx, и работу через файл htaccess. Бывают разные ситуации, когда не все редиректы отрабатывают или «ложится» админка и т.д. Здесь рассмотрен пример в котором ВСЕ работает (или пока что работает 🙂 ).

Какие дубли убираем

  1. дубли слеша на конце урлов — принудительно добавляем
  2. дубли главного зеркала — принудительно на non-www
  3. дубли с /index.php при просмотре с главной
  4. дубли с /index.php при попытке открыть такой урл с внутренних страниц. Например site.com/index.php/services/qa
  5. дубли вида site.com/alias/index.php
  6. дубли .html в конце урла — принудительно «отрезаем»

Собственно сам htaccess

< IfModule mod_rewrite.c >
Options +FollowSymLinks
RewriteEngine On
#добавляет слэш в конец
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]
#редирект на без www
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
#редирект с /index.php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site.com/ [R=301,L]
#редирект с внутренних /index.php
RewriteCond %{REQUEST_URI} ^/index.php/(.*)$
RewriteRule (index.php)/(.*) http://site.com/$2 [R=permanent,L]
#убирает .html со всех урлов
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+([^.]+)\.html [NC]
RewriteRule ^ /%1/ [R=301,L]
#убирает /index.php в конце алиаса
RewriteRule ^(.*)index\.php$ $1 [R=301,L]
#стандартный набор Битрикс
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
RewriteRule .* — [E=REMOTE_USER:%{HTTP:Authorization}]
< / IfModule >

Использовать нужно только так (в таком порядке) как тут написано!

Это все дело обернуто в стандартную конструкцию «IfModule» — по умолчанию.

Схожая статья — основные редиректы, с чего начать?

И напоследок — небольшой совет ↓

Если Вы не очень поняли, что написано выше, или самостоятельно не получается избавится от дублей в Битрикс — не переживайте!
Вам поможет простой и удобный инструмент для управления редиректами в Битрикс, рекомендую установить модуль Редирект Мастер.

В нем можно удобно:

  • создать редиректы через админку,
  • загрузить их из Excel,
  • сгенерировать редиректы при изменения ЧПУ,
  • настроить их автоматическое создание.

Более полый перечень функций можно посмотреть на официальном сайте разработчика: atlant2010.ru
Модуль доступен в Маркетплейс 1С-Битрикс.