Уверен в том, что Америку я не открываю, но и материал это нужный и очень важный для правильной организации своих проектов. Рано или поздно разработчик натыкается на этот маленький, но как показывает практика, очень важный момент – «как настроить .htaccess?», хотя обычно и пропускает это мимо, размышляя – «Ладно, я потом, как-нибудь доберусь, прочитаю, чего-нибудь сделаю ну т.п.» Если мы сейчас не на этом этапе размышлений, то поехали дальше.
Что такое .htaccess - это файл, который располагается в корне или же в поддиректориях сервера и назначение его одно - управление настройками сервера Apache для вашего сайта в целом или же для отдельных файлов. Насколько это известно, все файлы и каталоги на сервере представляют древовидную структуру, так вот .htaccess является надстройкой как для вложенных файлов и каталогов, так и для директории, в которой он расположен. Кстати, если у нас есть структура:
--source/
|--admin/
| |--data/
| |--source/
| |--.htaccess //второй файл .htaccess
| |--index.php
|--data/
|--core/
|--.htaccess //первый файл .htaccess
|--index.php
|--login.php
По идее первый .htaccess должен действовать на все файлы и каталоги, но в admin находится второй файл .htaccess, который отменят все правила первого для admin и задействует новые. Кстати говоря, файл не доступен к чтению по протоколу http, поэтому его не могут видеть пользователи сайта.
Ниже я приведу перечень операций, доступных к описанию в .htaccess:
//Запрет на все файлы в каталоге:
deny from all
//Доступ только с определенного IP:
order allow deny
deny from all
allow from $ip //$ip - IP адрес.
//Запретить доступ для определенного ip:
order allow deny
deny from all
deny from $ip
//Запрет доступа на группу файлов по расширению (по маске):
<Files "\.(tar|gif|png|...|xml)$">
order allow,deny
deny from all
</Files>
//Разрешение или запрет на чтение по расширению.
Запрет на доступ к файлам *.inc:
<Files "\.(inc)$">
order allow,deny
deny from all
</Files>
/* Запреты файла .htaccess действуют только при обращении к документу через браузер пользователя. */
//Запрет доступа на конкретный файл:
<Files conf.inc.php>
order allow,deny
deny from all
</Files>
/* Запрет на чтение conf.inc.php посетителями сайта не запрещает локальным приложениям сервера читать этот файл. */
//Паролирование директории:
AuthName "Reg only"
AuthType Basic
AuthUserFile /pub/home/site/.htpasswd
require valid-user
/* Значение AuthName будет выводиться для посетителя во всплывающем окне и может использоваться для пояснения запроса авторизации. Значение AuthUserFile указывает серверу, где хранится файл с паролями для доступа. Этот файл создается специальной утилитой htpasswd в linux или htpasswd.exe в Windows. */
/* Пароль только на 1 файл:
Пример установки пароля на файл file.rar: */
<Files file.rar>
AuthName "Users zone"
AuthType Basic
AuthUserFile /pub/home/login/.htpasswd
</Files>
//Пароль на группу файлов по расширению:
<Files "\.(gif|png|...|rar)$"> А дальше как пароль на файл
//Перенаправления (редиректы)
Redirect посетителей на другой сайт:
Redirect / http://www.site.ru
//Перенаправление при запросе определенных каталогов и страниц:
redirect /_vti_bin http://alterwebs.net/
redirect /cpp http://alterwebs.net
redirect /dpp http://alterwebs.net/read/general/list/
RedirectMatch (.*)\cmd.exe$ http://www.microsoft.com$1
//Переопределение стартовой страницы
DirectoryIndex index.html
//Или
DirectoryIndex index.shtm index.php3 index.php index.htm index.html
//Обработка ошибок сервера
/* код 401 - Требуется авторизация (Authorization Required)
код 403 - Нет доступа (Forbidden)
код 404 - Не найден файл (File not found)
код 500 - Внутренняя ошибка сервера (Internal Server Error) */
ErrorDocument 401 /errors/401.html
ErrorDocument 403 /errors/403.html
ErrorDocument 404 /errors/404.html
ErrorDocument 500 /errors/500.html
/* Запрет на просмотр оглавления каталога. Если в директории dir/ нет файла Index.*, то при обращении к dir/ будет отказано в доступе - ошибка 403. */
Options -Indexes
/* Установка кодировки по умолчанию (default-кодировка). В какой кодировке сервер будет отдавать документы. */
AddDefaultCharset windows-1251
//Установка кодировки на загружаемые файлы
CharsetSourceEnc windows-1251
Вот пожалуй пока что все. С уважением, Я!
Знаете ли вы?
Что когда человек врет, он обычно смотрит вверх и налево.