Перейти к основному контенту

Настройка редиректов .htaccess


<IfModule mod_rewrite.c>
	Options +FollowSymLinks
	RewriteEngine On
		
	# редирект на www
	RewriteCond %{HTTP_HOST} ^site\.ru
	RewriteRule ^(.*)$ https://www.site.ru/$1 [R=302,L]

    # редирект с index.php на site.ru
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
    RewriteRule ^index\.php$ https://polymertx.ru/ [R=301,L]

	# редиректы на https
	RewriteCond %{SERVER_PORT} ^80$ [OR]
	RewriteCond %{HTTP} =on
    RewriteCond %{HTTP_HOST} ^www.site\.ru
	RewriteRule ^(.*)$ https://www.site.ru/$1 [R=302,L]
	

	# редирект с /test/index.php на /test/
	RewriteCond %{REQUEST_URI} !^/bitrix/
	RewriteCond %{REQUEST_METHOD} =GET
	RewriteCond %{REQUEST_URI} ^(.*)/index\.php$
	RewriteRule ^(.*)$ %1/ [R=302,L]

	# редирект с /test на /test/
	RewriteCond %{REQUEST_URI} !^/bitrix/
	RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?)
	RewriteRule .* %1/ [R=302,L]

	# редирект с /test/// на /test/, а также с /test1///test2/ на /test1/test2/
	RewriteCond %{REQUEST_URI} !^/bitrix/
	RewriteCond %{REQUEST_URI} ^(.*?)/{2,}?(.*?)$
	RewriteRule .* %1/%2 [R=302,L]
	RewriteCond %{REQUEST_URI} !^/bitrix/
	RewriteCond %{THE_REQUEST} //
	RewriteCond %{QUERY_STRING} !http(s|)://
	RewriteRule .* /$0 [R=302,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}]
#  RewriteRule ^robots.txt$ robots.php [L,QSA]
</IfModule>

<IfModule mod_rewrite.c>
	Options +FollowSymLinks
	RewriteEngine on
	
	# Редирект c www и с http #
	RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
	
	RewriteRule ^(.*)$ https://%1/$1 [L,R=301]
	RewriteCond %{HTTP:X-Forwarded-Proto} !https [NC]
	RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
	
	# Редирект со слеша в конце #
	RewriteCond %{THE_REQUEST} //
	RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
	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}]
	
	Redirect 301 /index.html https://bonolit.ru/
</IfModule>

############################################################################
#### Cтандартный .htaccess для проектов студии Клондайк, версия 2.4     ####
############################################################################
RewriteEngine On #  Директива включает редиректы.
RewriteBase /  # Без директивы (.*) = /$1 будет /var/wwww/site/web/$1  с директивой  = /$1

Options +FollowSymLinks # Разрешает переход по символическим ссылкам.

############################################################################
#### Перенаправляем протокол https на http                              ####
############################################################################
RewriteCond %{HTTPS} on # Проверяем наличие https в URL.
RewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI} # Перенаправляем протокол на http.

############################################################################
#### Выбор основного зеркала (или с www или без www)                    ####
############################################################################
# 1. Редирект с www на без www. (раскоментировать директивы пункта 1)
#RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]

# Проверяем, содержит ли домен www (в начале URL).
#RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

# Перенаправляем URL на домен без www.
####
# 2. Редирект без www на www. (раскоментировать директивы пункта 2)
#RewriteCond %{HTTP_HOST} !^www\.(.*) [NC] # Проверяем, не содержит ли домен www (в начале URL).
#RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] # Перенаправляем URL на домен c www.

############################################################################
#### Убираем повторяющиеся слеши (/) в URL                              ####
############################################################################
RewriteCond %{THE_REQUEST} //
   # Проверяем, повторяется ли слеш (//) более двух раз.
RewriteRule .* /$0 [R=301,L]
   # Исключаем все лишние слеши.

############################################################################
#### Убираем слеши в конце URL для статических файлов (содержит точку)  ####
############################################################################
RewriteCond %{REQUEST_URI} \..+$  
   # Если файл содержит точку.
RewriteCond %{REQUEST_FILENAME} !-d   
   # И это не директория.
RewriteCond %{REQUEST_FILENAME} -f
   # Является файлом.
RewriteCond %{REQUEST_URI} ^(.+)/$      
   # И в конце URL есть слеш.
RewriteRule ^(.+)/$ /$1 [R=301,L]     
   # Исключить слеш.

############################################################################
#### Добавляем слеш(/), если его нет, и это не файл.                    ####
############################################################################
RewriteCond %{REQUEST_URI} !(.*)/$
   # Если слеша в конце нет.
RewriteCond %{REQUEST_FILENAME} !-f
   # Не является файлом.
RewriteCond %{REQUEST_URI} !\..+$
   # В URL нет точки (файл).
RewriteRule ^(.*)$ $1/ [L,R=301]
   # Добавляем слеш в конце.

############################################################################
#### Убираем index.php, если он есть в конце URL                        ####
############################################################################
RewriteCond %{REQUEST_METHOD} =GET
   # Выявляем GET запрос в URL (не POST).
RewriteCond %{REQUEST_URI} ^(.*)/index\.php$
   # URL cодержит index.php в конце.
RewriteRule ^(.*)$ %1/ [R=301,L]
   # Удалить index.php из URL.

############################################################################
#### Компрессия статического контента для гугл  спид тест               ####
############################################################################
<IfModule mod_deflate.c>
  # Compress HTML, CSS, JavaScript, Text, XML and fonts
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml
  AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>
<IfModule mod_expires.c>
  ExpiresActive on
  ExpiresByType image/jpeg "access plus 3 day"
  ExpiresByType image/svg "access plus 3 day"
  ExpiresByType image/gif "access plus 3 day"
  ExpiresByType image/png "access plus 3 day"
  ExpiresByType text/javascript "access plus 3 day"
  ExpiresByType text/css "access plus 3 day"
  ExpiresByType application/javascript "access plus 3 day"
</IfModule>
############################################################################
#### Конец общей части, далее следует собственные директивы .htaccess   ####
############################################################################