Всё про файл .htaccess
Файл .htaccess позволяет администратору управлять почти всеми настройками сервера Apache, касательно всего сайта или только определённых директорий, потому как структура папок на сервере имеет древовидную структуру и если поместить файл .htaccess в одну из них, то можно получить управление именно этой директорией, не влияя на работу других. Если в директории "DIR" расположен такой файл .htaccess, а во вложенном каталоге по отношению к нему есть еще один .htaccess, то во вложенной директории действуют настройки последнего. Вот таким образом, новый .htaccess отменяет предыдущий.
Данный фал вы не увидите через протоков http, следоватьно пользователи не смогут увидеь всех настроек вашего сайта.
Сервер Apache действует таким образом: при начале обработки страницы, он сначала ищет именно файл .htaccess, находящийся в коре директорий. Если он найден, то Apache начинает обработку директории соответствующим образом, описанным в файле.
Если сервер при обходе директорий, находит синтаксические ошибки в файле .htaccess, то он прекращает обработка. Вот некоторые из них, а точнее: самые популярные ошибки при работе с этим файлом:
1. Путь к файлу должен быть полным. ( /paht/to/Your/site/.htpassword )
2. Для переадресаций указываем протокол: http или ftp (Redirect / http://www.somesite.ru/)
3. По умолчанию файл называется .htaccess.
4. Файл сохраняется в Unix формате. То есть символ новой строки - n.
Теперь стоит поговорить о некоторых самых популярных параметрах настойки:
Запреты и разрешения
Запрет на все файлы в каталоге:
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
require valid-user
</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/, ему будет отказано в доступе и Apache выдаст ошибку 403.
Options -Indexes
Кодировка
Иногда необходимо установить кодировку по умолчанию, то есть default-кодировка. В какой кодировке сервер будет отдавать документы.
AddDefaultCharset windows-1251
А так же установка необходимой кодировки на файлы на сервере:
CharsetSourceEnc windows-1251