Полезные статьи по разработке сайта на системе управления 1С-Битрикс. Программирование. Верстка.

Пример корректного файла htaccess для сайта на 1С-Битрикс

  860

При установке 1С-Битрикс в корне сайта создается файл .htaccess, который предназначен, в том числе, для корректной работы ЧПУ. Но по-умолчанию он не удовлетворяет всем требованиям типового проекта. В этой статье поделимся полезным примером настройки файла .htaccess для 1С-Битрикс.

Найдите файл .htaccess в корневом каталоге вашего сайта через файловый менеджер. Если файла нет, скорее всего у вашего файлового менеджера отключено отображение скрытых файлов. Вот пример корректного файла htaccess для сайта:

 Options -Indexes 
ErrorDocument 404 /404.php
 
<IfModule mod_php5.c>
    php_flag session.use_trans_sid off
    #php_flag default_charset UTF-8
    #php_value display_errors 1
</IfModule>

<IfModule mod_php7.c>
    php_flag session.use_trans_sid off
    #php_flag default_charset UTF-8
    #php_value display_errors 1
</IfModule>

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
	RewriteEngine On
	RewriteBase /
	
	#добавляет слэш в конец
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_URI} !(.*)/$
	RewriteRule ^(.*[^/])$ $1/ [L,R=301]

	#добавляет слэш в конец
	RewriteCond %{REQUEST_URI} [A-Z]

	# Редирект с www на без www
	RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
	RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
	
	# Удаляем index.php из адреса
	RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
	RewriteCond %{REQUEST_URI} !/bitrix/admin/.* [NC]
	RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]
	
	# Удаляем index.html из адреса
	RewriteCond %{THE_REQUEST} ^GET.*index\.html [NC]
	RewriteRule (.*?)index\.html/*(.*) /$1$2 [R=301,NE,L]
		
	#редирект с http на https
	RewriteCond %{HTTPS} off
	RewriteCond %{HTTP:X-Forwarded-Proto} !https
	RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

	RewriteCond %{REQUEST_URI} ^(.*?)\/{2,}(.*?)$
	RewriteRule . %1/%2 [L,R=301]
	RewriteCond %{THE_REQUEST} //
	RewriteRule .* /$0 [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 mod_dir.c>
    DirectoryIndex index.php index.html
</IfModule>

<IfModule mod_setenvif.c>
    SetEnv TZ Europe/Moscow
</IfModule>

<IfModule mod_deflate.c>
  <IfModule mod_filter.c>
      AddOutputFilterByType DEFLATE text/plain text/html
      AddOutputFilterByType DEFLATE text/css
      AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript
      AddOutputFilterByType DEFLATE text/xml application/xml application/xhtml+xml application/rss+xml
      AddOutputFilterByType DEFLATE application/json
      AddOutputFilterByType DEFLATE application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon
  </IfModule>
</IfModule>

<IfModule mod_headers.c>
	#кэшировать html и htm файлы на один день
	<FilesMatch "\.(html|htm)$">
		Header set Cache-Control "max-age=43200"
	</FilesMatch>
	#кэшировать css, javascript и текстовые файлы на одну неделю
	<FilesMatch "\.(js|css|txt)$">
		Header set Cache-Control "max-age=604800"
	</FilesMatch>
	#кэшировать флэш и изображения на месяц
	<FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|png)$">
		Header set Cache-Control "max-age=2592000"
	</FilesMatch>
	#отключить кэширование
	<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
		Header unset Cache-Control
	</FilesMatch>
</IfModule>
Помощь проекту
Привет, меня зовут Вика! Я являюсь автором сайта Weblim.
Если Вам помогла данная статья, вы можете отблагодраить меня перечислив любую денежную сумму. Заранее спасибо!