Редиректы .htaccess

Опубликовал Максим Баев, 18 апреля 2014, 14:45

Несколько примеров перенаправлений с помощью файла .htaccess. Работает при включенном mod_rewrite.

Перенаправление страниц user/login и user/register на https протокол

RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} user/login|user/register
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Перенаправление всех страниц, кроме user/login и user/register на http протокол

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !user/login(.*)$
RewriteCond %{REQUEST_URI} !user/register(.*)$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

Перенаправление главной страницы на http протокол

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/ [R=301,L]

Перенаправление на www

RewriteRule ^ - [E=protossl]
RewriteCond %{HTTPS} on
RewriteRule ^ - [E=protossl:s]

RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Перенаправление на страницы без www (обратное предыдущему примеру)

RewriteRule ^ - [E=protossl]
RewriteCond %{HTTPS} on
RewriteRule ^ - [E=protossl:s]

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]

Другие посты