Задать вопрос
Наши специалисты ответят на любой интересующий вопрос по услуге
Также можно убрать дубли:
  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» — по умолчанию.

Заказать услугу
Оформите заявку на сайте, мы свяжемся с вами в ближайшее время и ответим на все интересующие вопросы.