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]
															
		Нам будет приятно
Поделитесь
Комментарии