Универсальный htaccess для 1с Битрикс

Одним из наиболее важных файлов в настройке сайта является .htaccess, но до сих пор он же, для многих, является и самым не понятным в настройке.

Что такое .htaccess?


Говоря простым языком, файл .htaccess – это серверный документ, который используется для настройки уровня доступа к файлам и папкам, правил переписи URL или сообщений об ошибке.

Ниже представлена универсальная версия для первоначальной настройки данного файла позволяющая исключить технические дубли страниц на вашем сайте...

Options -Indexes
ErrorDocument 404 /404.php
 
<IfModule mod_php5.c>
  php_flag allow_call_time_pass_reference 1
  php_flag session.use_trans_sid off
 #php_value display_errors 1
  php_value mbstring.internal_encoding UTF-8
</IfModule>
 
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On

#убрать //
RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$
RewriteRule (.*) %1/%2 [R=301,L]

#редирект с www на без www
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

#добавить в конце /
RewriteCond %{REQUEST_URI} ^(.*/[^/\.]+)$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]

#редирект с index.php
RewriteCond %{REQUEST_URI} ^(.*)/$
RewriteRule .* - [L]
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]
RewriteCond %{REQUEST_METHOD} =GET
RewriteCond %{REQUEST_URI} ^(.*)/index.php$
RewriteRule ^(.*)$ %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 mod_dir.c>
DirectoryIndex index.php index.html
</IfModule>
 
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image/jpeg "access plus 3 day"
ExpiresByType image/gif "access plus 3 day"
ExpiresByType image/png "access plus 3 day"
ExpiresByType text/css "access plus 3 day"
ExpiresByType application/javascript "access plus 3 day"
</IfModule>