.htaccess

Материал из Ай да Linux Wiki
Перейти к навигации Перейти к поиску

Описание

Файл .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

Ссылки

internet-technologies.ru