ШПАРГАЛКА ПО .HTACCESS

ШПАРГАЛКА ПО .HTACCESS

Это не мануал, здесь собраны наиболее часто используемые настройки .htaccess, своего рода сборник подсказок.


.htaccess позволяет создать собственную конфигурацию управлением сервера Апач в директориях или настройках хостинга.
Правила .htaccess распространяются на все директории, где расположен файл, кроме директорий, где расположен собственный .htaccess.
Файл .htaccess считывается сервером Апач при каждом обращении, поэтому все изменения входят в силу сразу, после изменения.
Глобальные настройки сервера Апач могут содержать запрет на исполнение некоторых команд, обычно это вызывает ошибку 500. Также подобную ошибку может вызывать неправильный синтаксис или ошибка, например пропуск пробела.


Запрет доступа для определенных IP-адресов или диапазонов IP-адресов


Запрет доступа с IP-адреса 123.123.123.123.
Order Deny,AllowDeny from 123.123.123.123

Если не указывать последние цифры адреса, то запрет будет распространяться на весь диапазон 123.123.123.0 - 123.123.123.255.
Order Deny,AllowDeny from 123.123.123

Разрешаем доступ только с определенных IP-адресов
Order Deny,AllowDeny from allAllow from 123.123.123.123

Принудительное задание кодировки
AddDefaultCharset UTF-8Иногда требуется очистка кэша браузера.


Отмена перекодировки сервером
CharsetDisable On

Создание собственных страниц с сообщениями об ошибках

При переходе, например на несуществующий адрес посетитель увидит сообщение сервера об ошибке, можно создать собственные страницы ошибок, либо перенаправлять посетителя на другой адрес, как главная страница. Но для правильной индексации не перенаправлять, а указывать ошибку.

ErrorDocument 404 http://site.ru/error/404.html

ErrorDocument 403 http:// site ru/error/403.html

ErrorDocument 401 http:// site.ru/error/401.html

ErrorDocument 500 http:// site.ru/error/500.html

Строка ErrorDocument 404 http://site.ru/error/404.html указывает, что при ошибке 404 будет показан файл 404.html, который должен находиться в корне директории сайта. Если файл расположен в другой директории, измените путь к файлу или ссылке.

Редиректы

Редирект на .html

Пример, редирект с c site.ru/blog на site.ru/blog.html

RewriteCond %{REQUEST_URI} (.*/[^/.http://mysite.ru/$1 [R=permanent,Lhttp://site.ru/ [R=301,Lhttp://site.ru/$1 [R=301,Lhttp://www.site.ru/$1 [R=301,Lhttp://site.ru/$1 [R=301,Lhttp://site.com.ua/page.php?id=13 на новую страницу http://site.com.ua/newname.html, используется следующая конструкция:

Редирект со старых статических url на новые

Пример редирект со страницы http://site.com.ru/id=21

RewriteCond %{QUERY_STRING} ^id=21$
RewriteRule ^/page.php$ http://site.ru/news.html [L,R=301]