02.05.2019
Правильный htaccess для 1С-Битрикс
При установке 1С-Битрикс в корне сайта создается файл .htaccess, который предназначен, в том числе, для корректной работы ЧПУ. Но по-умолчанию он не удовлетворяет всем требованиям типового проекта. В этой статье поделимся полезным примером настройки файла .htaccess для 1С-Битрикс.
Найдите файл .htaccess в корневом каталоге вашего сайта через файловый менеджер. Если файла нет, скорее всего у вашего файлового менеджера отключено отображение скрытых файлов. В файле вы найдете такую запись:
<IfModule mod_rewrite.c> Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$ RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L] </IfModule>
Именно эти строки отвечают за корректную работу ЧПУ 1С-Битрикс. Здесь и нужно вносить изменения, добавляя правила после строки RewriteEngine On.
1. Добавление / в конце для перенаправления страниц элементов инфоблока вида /catalog/element на /catalog/element/:
# Переадресация с добавлением / в конце RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^.]+)(?<!/)$ /$1/ [R=301,L]
2. Перенаправление домена с www. на домен без www.
# Переадресация с домена с WWW на домен без WWW RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
Перенаправление с домена без www. на домен с www.
# Переадресация с домена без WWW на домен с WWW RewriteCond %{HTTP_HOST} ^([^www].*)$ RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]
3. Структура 1С-Битрикс включает в себя статичные страницы index.php, что влечет за собой открытие таких страниц по адресу /page/ и /page/index.php, в итоге получаем дубли страниц на сайте. Чтобы этого избежать, добавляем:
# Переадресация с index.php на / RewriteCond %{REQUEST_FILENAME} ^(.*)/index\.php$ RewriteRule ^(.*)index\.php(.*)$ /$1$2 [R=301,L]
4. Помимо этого можно добавить редирект на защищенный протокол https:
Вариант 1
# редирект на https:// RewriteCond %{HTTPS} =off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
Вариант 2
# редирект на https:// RewriteCond %{SERVER_PORT} !^443$ RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
Вариант 3
# редирект на https:// RewriteCond %{HTTPS} off RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Вариант 4
# редирект на https:// RewriteCond %{ENV:HTTPS} !on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Нам будет приятно
Поделитесь
Комментарии