====== Коллекция htaccess правил на все случаи жизни ======
Пожалуй лучшее собрание сочинений [[https://github.com/phanan/htaccess|лучшая подборка]] всевозможных rewrite правил. И [[https://www.askapache.com/htaccess/|ещё одна]].
==== Редирект всех страниц кроме главной ====
301 редирект на новый домен всех страниц кроме главной
RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^domain\.com$
RewriteCond %{REQUEST_URI} !^/?$ [NC]
RewriteRule ^(.*)$ http://foobar.com/$1 [R=301,L]
==== Выключить HSTS и сделать редирект на http ====
Проверить FIXME
HSTS
Header set Strict-Transport-Security "max-age=0; includeSubDomains" env=HTTPS
https→http
RewriteEngine On
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
==== Убрать index.html или index.php ====
RewriteCond %{REQUEST_URI} !/$ [NC]
RewriteCond %{REQUEST_URI} /index.(html?|php)$ [NC]
RewriteRule .* http://example.com/ [R=301,L]
==== Редиректы httpS ====
Редирект на httpS и www
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteRule (.*) https://www.%1/$1 [R=301,L]
Redirect to https and non-www
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule (.*) https://example.com/$1 [L,R=301]
==== 1 ====
www non-www
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
www > non-www http&https
RewriteEngine on
RewriteBase /
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
Тоже самое короче
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.
RewriteCond %{HTTPS}s ^on(s)|off
RewriteCond http%1://%{HTTP_HOST} ^(https?://)(www\.)?(.+)$
RewriteRule ^ %1%3%{REQUEST_URI} [R=301,L]
==== server-status выдаёт 404 ====
Не работает ''server-status'' если уже есть rewrite правила в .htaccess
RewriteRule ^(server-info|server-status) - [L]
{{tag>apache httpd htaccess}}