Главная » Блог » Файл .htaccess. Примеры настроек и редиректы.

Файл .htaccess. Примеры настроек и редиректы.

Код состояния HTTP 301 или Moved Permanently («Перемещено навсегда») — стандартный код ответа сервера, который может быть получен, если запрошенный URL-адрес сайта был навсегда перенесен в новое месторасположение.

 

#301 для всех доменов, кроме основного
RewriteCond %{HTTP_HOST} !^site\.ru
RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]

#301 с одного домена на другой
RewriteCond %{HTTP_HOST} ^old-site\.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

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

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

#с http на https, кроме robots.txt
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !/robots\.txt
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

#с http на  https для sweb, кроме robots.txt
RewriteCond %{HTTP:HTTPS} !=on [NC]
RewriteCond %{REQUEST_URI} !/robots\.txt
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
SetEnvIf X-Forwarded-Proto https HTTPS=on

#с http на https для nic.ru||infobox||timeweb||sprinthost , кроме robots.txt
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{REQUEST_URI} !/robots\.txt
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

#с http на https для jino , кроме robots.txt
RewriteCond %{HTTP:X-Forwarded-Protocol} !=https
RewriteCond %{REQUEST_URI} !/robots\.txt
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

#с http на https для masterhost , кроме robots.txt
RewriteCond %{HTTP:PORT} !^443$
RewriteCond %{REQUEST_URI} !/robots\.txt
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R]

#с http на https для reg.ru , кроме robots.txt
RewriteCond %{ENV:HTTPS} off
RewriteCond %{REQUEST_URI} !/robots\.txt
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

#с одной папки на другую
RewriteRule ^kostyumy/(.*)$ /catalog/$1 [R=301,L]
#Пример: редирект с site.ru/kostyumy/palto.html на site.ru/catalog/palto.html

#с одной папки на конкретную страницу
RewriteRule ^kostyumy/(.*)$ /catalog.html [R=301,L]
#Пример: редирект с site.ru/kostyumy/palto.html на site.ru/catalog.html

#Смена страниц с html расширения на php расширение
RedirectMatch 301 (.*)\.html$ http://www.new-site.ru$1.php

#Редирект с поддомена на основной домен второго уровня
RewriteCond %{HTTP_HOST} ^test.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru%{REQUEST_URI} [R=301,NC,L,QSA]

#Массовая склейка. 301 редирект для index.php, index.html или index.htm
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html|htm)\ HTTP/
RewriteRule ^(.*)index\.(php|html|htm)$ http://site.com/$1 [R=301,L]

#С порта на https (в нашем случае порт :7081)
RewriteCond %{SERVER_PORT} ^7081$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

#код 403 (доступ запрещен для конкретных user agent)
RewriteCond %{HTTP_USER_AGENT} (SemrushBot|Jooblebot|Baiduspider|BackupLand|NetcraftSurveyAgent|openstat.ru) [NC]
RewriteRule .* - [F,L]

#код 403 для конкретных ip и подсетей
Order Deny,Allow
Deny from 178.176.73.194
Deny from 31.173.80.0/21
Deny from 196.144.0.0/12