htaccess примеры

модуль mod_rewrite основной сервис для сайта

mod_rewrite рулит редиректами страниц, заголовками отдаваемыми сервером и вообще принципиальный этап управления сайтом, с него все начинается.

Настраивается все в текстовом файле .htaccess. Лежит он в корне вашего сайта.

Самая неприятная особенность правки htaccess в том, что иногда не понятно вступили изменения в силу или нет, то есть загрузили на сайт новый htaccess (перезаписали старый), но он почему-то не работает как надо (по новому), например смотрите здесь: что делать, если браузер кеширует ответы сервера.

Итак первое это комментируем в .htaccess все директивы, переменные сервера и объясняем синтаксис шаблонов.

Надо понимать , что каждый долбаный символ, каждый пробел имеет значение.

Убираем index.php или index.htm или index.html в запросе

Делаем редирект 301 с index.xxx файлов на / . Сначала убираем index.php или index.htm или index.html в запросе. Оставляем только каталог , т.е. примерно так :

kkmspb.ru/index.htm ->kkmspb.ru/
RewriteCond %{THE_REQUEST} ^(.*)\ /index(\.html|\.htm|\.php){1}(.*)\ HTTP/  
RewriteRule ^(.*)index(\.html|\.htm|\.php)$ http://%{HTTP_HOST} [R=301,L]

Убираем www в запросе

Чтобы со страницы www.kkmspb.ru шел постоянный (301) редирект на kkmspb.ru.

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

Отдаем все файлы для скачивания, шрифты, картинки как есть

exe|xml|txt|rar|zip|css|js|jpg|jpeg|png|gif|ico|pdf|doc|docx|ttf|woff2|woff|eot|otf|svg

wrong?aaa=22
wrong ?
right без ?

второй аргумент RewriteRule : если не указать знак ? после errfile404.php, то строка параметров передается на следующий этап
RewriteRule \.(exe|xml|txt|html|htm|rar|zip|pdf|doc|docx|crl|css|js)$ /errfile404.php? [R=301,L]
(просто это надо иметь ввиду)