.htaccess
Описание
Файл .htaccess позволяет администратору управлять почти всеми настройками сервера Apache, касательно всего сайта или только определённых директорий, потому как структура папок на сервере имеет древовидную структуру и если поместить файл .htaccess в одну из них, то можно получить управление именно этой директорией, не влияя на работу других. Если в директории "DIR" расположен такой файл .htaccess, а во вложенном каталоге по отношению к нему есть еще один .htaccess, то во вложенной директории действуют настройки последнего. Вот таким образом, новый .htaccess отменяет предыдущий. Данный фал вы не увидите через протоков http, следоватьно пользователи не смогут увидеь всех настроек вашего сайта.
Сервер Apache действует таким образом: при начале обработки страницы, он сначала ищет именно файл .htaccess, находящийся в коре директорий. Если он найден, то Apache начинает обработку директории соответствующим образом, описанным в файле. Если сервер при обходе директорий, находит синтаксические ошибки в файле .htaccess, то он прекращает обработку.
Вот самые популярные ошибки при работе с этим файлом:
- Путь к файлу должен быть полным. ( /paht/to/Your/site/.htpassword )
- Для переадресаций указываем протокол: http или ftp (Redirect / http://www.somesite.ru/)
- По умолчанию файл называется .htaccess.
- Файл сохраняется в Unix формате. То есть символ новой строки - \n.
Примеры:
Запреты и разрешения
Запрет на все файлы в каталоге:
deny from all
Доступ только с определенного IP:
order allow deny deny from all allow from $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>
Запрет доступа на конкретный файл:
<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.
Пароль только на 1 файл:
<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 utf8
А так же установка необходимой кодировки на файлы на сервере:
CharsetSourceEnc utf8