Файл .htaccess используется для "гибкой" настройки сервера Apache (обработки ошибок, ограничения доступа). В этой статье будем учиться его использовать. Обычно файл .htaccess лежит в корневом каталоге и действует на весь сайт и на все дирректрии (если в них не находится "своего" .htaccess). Если необходимо создать конкретные настройки Apache для определенной папки, следует поместить в нее новый файл .htaccess и действие его распространится на данную папку. Причем .htaccess лежащий в корне сайта никак влиять на эту папку в этом случае не будет.
Как сделать .htaccess Просто. На локальном компе создаем текстовый документ .htaccess.txt, по FTP заливаем его на хост, и переименовываем в .htaccess
Теперь немного конкретики. Что можно сделать посредством .htaccess?
Меняем страницу, которая будет показываться при обращении к директории.
Пропишем в файле .htaccess:
DirectoryIndex index.shtml ** При обращение к директории, в которой лежит .htaccess, будет грузиться файл index.shtml
Запрет доступа с помощью .htaccess
При желании можем дать запрет на все файлы:
deny from all *** никто ничего не увидит.
Разрешить доступ посетителю только с определенного ip:
Order Allow,Deny deny from all allow from 192.168.8.1 *** Всем кроме посетителя с IP 192.168.8.1 доступ запрещен.
Кстати, вместо ip адреса в .htaccess можно использовать имя домена. Например. Запретим доступ для всех посетителей, кроме пришедших с www.cn.moy.su :
Order Deny,Allow Deny from all Allow from .cn.moy.su *** Только посетители с cn.moy.su увидят ваш сайт.
Запрет доступа для определенного ip:
Order Allow,Deny Allow from all deny from 192.168.8.1 *** Для посетителя с IP 192.168.8.1 доступ на сайт запрещен. **** Только не спрашивайте у меня где всять список китайских ip
Аналогично, как и в примере выше, можно вместо (а можно и совместно) IP использовать имя домена, т.е. запретить доступ для посетителей, пришедших с определенного сайта:
Order Allow,Deny Allow from all deny from .xer.net deny from 192.168.8.1 *** Для посетителя с IP 192.168.8.1 и всех, кто пришел с xer.net доступ на сайт запрещен.
Определенная кодировка на все загружаемые на хост файлы:
CharsetSourceEnc windows-iso-8859-1 *** все файлы будут иметь кодировку windows-iso-8859-1
Можно выставить определенную кодировку лишь на конкретные загружаемые на хост файлы:
AddType "application/x-httpd-php3; charset=windows-iso-8859-1" .html AddType "application/x-httpd-php3; charset=windows-1251" .htm *** Устанавливаем кодировку windows-iso-8859-1 на файлы .html и windows-1251 на файлы .htm
Кодировка на все файлы, в которой по умолчанию будет получать их браузер посетителя:
AddDefaultCharset windows-iso-8859-1 *** Все страницы, которые отдает сервер клиенту, будут иметь кодировку windows-iso-8859-1
Перенаправляем посетителей на другой URL (редирект) В .htaccess пишем:
Redirect / http://www.cn.moy.su *** все посетители будут перенаправлены на www.cn.moy.su
Перенаправление посетителей при запросе определенных страниц: Защищаемся от всяческих сетевых вирусов и сканеров. Добавляем в .htaccess:
redirect /scripts http://www.microsoft.com redirect /_vti_bin http://www.microsoft.com redirect /MSADC http://www.microsoft.com redirect /_mem_bin http://www.microsoft.com redirect /msadc http://www.microsoft.com RedirectMatch (.*)\cmd.exe$ http://www.microsoft.com$1 *** Любой запрос с адресом /_vti_bin или /scripts будет автоматически перенаправляться на сайт Microsoft.л
Редирект посетителей в зависимости от реффера (ссылающейся страницы):
RewriteCond %{HTTP_REFERER} http://www.sexnarod.ru RewriteRule ^/download.html$ /nahui.html [L] *** В данном случае все русские онанисты и извращенцы с форума sexnarod.ru вместо файла download.html получат файлик nahui.html
Можно показывать разные страницы сайта, в зависимости от IP адреса посетителя (редирект по IP)
SetEnvIf REMOTE_ADDR 192.168.8.1 REDIR="redir" RewriteCond %{REDIR} redir RewriteRule ^/$ /nahui.html *** Посетители с айпи адресом 192.168.8.1 будут перенаправляться .htaccess'ом на страницу nahui.html
Ставим запрет на отображение содержимого директории при отсутствии индексного файла:
Options -Indexes *** Это пригодится, если картинки или видео лежат в определенной папке, например, content на вашем хосте. Не зарегестрированный посетитель может обрезать урл и увидит список всех графических и видео файлов. Он наверняка будет вам благодарен, однако, такой халявы допускать не следует.
Обработка ошибок c помощью .htaccess:
ErrorDocument 401 /401.html ErrorDocument 403 /403.html ErrorDocument 404 /404.html ErrorDocument 500 /500.html
*** 401 - Требуется авторизация - Authorization Required 403 - запрет на доступ - Forbided 404 - запрашиваемый документ (файл, директория) не найден - Not Found 500 - внутренняя ошибка сервера - ошибка скрипта или ошибка в синтаксисе файла .htaccess - Internal Server Error
Можно создать свои страницы ошибок (см. пример выше), а можно редиректить на конкретный url:
ErrorDocument 401 www.cn.moy.su/ ErrorDocument 403 http://www.cn.moy.su/ ErrorDocument 404 http://www.cn.moy.su/ ErrorDocument 500 http://www.cn.moy.su/
Всем успехов :)
ссылки по теме: Защита от хотлинка (hotlinks) с помощью .htaccess Коды ответов сервера (коды ошибок)
  |