Примеры правил в htaccess
Рассмотрим на примерах правила для htaccess — 301 редиректы в зависимости от GET параметров, перенаправление на страницы с https протоколом, обработка 404 ошибки, закрытие каталога от просмотра файлов.
- Редирект 301 в зависимости от GET параметра
- Редирект с протокола HTTP на HTTPS и наоборот
- Обработка ошибок и запрет на просмотр файлов в каталогах сайта
Редирект 301 в зависимости от GET параметра
Перенаправление со страницы с GET параметром на эту же страницу без него. Обратите внимание на вопросительный знак в последней строке, он не случаен. Чтоб будет без него проверьте сами.
#exemple.ru/page1.html?q=ru => exemple.ru/page1.html RewriteCond %{QUERY_STRING} ^q=ru$ RewriteRule ^(.*)$ /$1? [R=301,L]
Формируем конечный адрес перенаправления в зависимости от значения GET параметра.
#exemple.ru/page?country=germany&city=bayer => exemple.ru/page?city=bayer RewriteCond %{QUERY_STRING} country=germany&city=(.*) RewriteRule ^(.*)$ /$1?city=%1 [L]
Редирект с протокола HTTP на HTTPS и наоборот
Редирект с http на https осуществляется когда требуется чтобы все страницы сайта были доступны только через защищённый протокол.
RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Обратный редирект. Исключаем использование защищенного протокола не отключая его физически на хостинге.
RewriteCond %{HTTPS} =on RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
Обработка ошибок и запрет на просмотр файлов в каталогах сайта
Создание собственной страницы 404 ошибки.
#404 ошибка ErrorDocument 404 /error404.php
Запрещаем просмотр содержимого директорий через браузер.
#Запрещаем просматривать содержимое папок Options -Indexes
Для проверки перенаправлений и отклика от сервера рекомендую использовать онлайн сервис Bertal.