.htaccess – синтаксис, директивы, использование…

Эта запись – памятка по работе с .htaccess. Практически ( но далеко не полностью ) .htaccess это тот же httpd.conf ( или apache.conf ) только в пространстве конкретного каталога. Вы без проблем с его помощью сможете настроить работы apache web сервера так, как вам нужно. Т.е если надо вы можете создать столько .htaccess и политик на его базе, столько хотите, или можете создать один в корневой директории вашего сервера и он распространит указание иерархически на все подкаталоги.
И еще, .htaccess политики не требуют перезапуска apache как то необходимо с httpd.conf.

Переходим к синтаксису файлов :
Указывая DirectoryIndex ( имя директории ) необходимо полностью от root ( от корня содержимого вашего сервера ).
Если вы хотите указать путь к файлу который находиться где-то в сети, то необходимо прописывать протокол на котором будет работать обращение к примеру не www.ifreebsd.org, а http://www.ifreebsd.org.
Коментарии пишутся после символа #

Далее переходим к директивам :
Директива файла описывается следующим образом -

<Files имя необходимого файла > … </Files>

Рассмотрим пример :

<Files myfile-root.html>

Order Deny,Allow
Deny from all
Allow from 10.1.1.1

</Files>

В этом примере мы разрешили обращение к файлу my_file.html только с адреса 10.1.1.1.
Можно также использовать регулярные выражения при выборе группы файлов :
Рассмотрим пример как это можно сделать ( Используем директиву FileMatch ) -
<FilesMatch “.(gif|jpe?g|png)$”>

Order Allow,Deny
Allow from all
Deny from 10.1.1.1

</FilesMatch>

После директивы прописываем в кавычках “” регулярное выражение которое отбирает все файлы с расширением gif jpg jpeg png и разрешает к ним доступ отовсюду кроме ip 10.1.1.1.
Далее рассмотрим весьма полезные редиректы реализуем их с помощью директивы
Redirect.
По примеру станет сразу понятно – как это работает :

Redirect temp / http://www.ifreebsd.ru/net.html
Redirect temp /index.html http://www.ifreebsd.ru/net-new.html
Redirect permanent /new-net.html http://www.ifreebsd.ru/new-net.html

После директивы Riderect пишем статус.
Статусы бывают следующие – permanent – перемещение сделано на постоянной основе. temp – временное перемещение. gone – отсутствует. seeother – вместо запрошенного смотрите другой.
Если вам необходимо производить редирект по определенным признакам ( регулярное выражение ) тогда вам необходима директива RedirectMatch.
Пример :
RedirectMatch (.*.jpg)$ http://www.freebsd.com$1

В этой статье мы начнем с ограничения доступа к каталогу средствами Apache. Для этого в файле .htaccess используется директивы Order, Deny, Allow.

Рассмотри несколько примеров :
#запретить доступ для всех
Order Deny,Allow
Deny from all
#разрешаем доступ с определенных IP адресов и хостов.
Order Deny,Allow
Deny from all
Allow from ifreebsd.org
Allow from 10.10.1.1

Также можно запретить доступ к конкретному файлу в каталоге, в нижеследующем примере – мы запрещаем доступ к файлу .passw-http для всех пользователей.

<Files “.passw-http”>

Order Deny,Allow

Deny from all

</Files>

Далее рассмотрим возможности установки пароля на доступ по имени пользователя и пароля, для этого будем использовать следующие директивы :
AuthName, AuthType, AuthUserFile, Require. Рассмотрим пример их использования :
#Разрешаем доступ к директории всем пользователям перечисленным в файле .passwd-http по Basic методу аутентификации.

AuthName “Welcome to me !”
AuthType Basic
AuthUserFile /home/ifreebsd.org/www/data/.passwd-http
Require valid-user

Второй пример разрешает доступ только трем пользователям :

AuthName “Welcome to microsoft”
AuthType Basic
AuthUserFile /home/user/www/data/.passwd-http
Require user gob bill oliya

Этой командой создаем файл паролей для наших директив -

htpasswd -c .passwd-http alan

Пока все.
удачи :)

http://ifreebsd.org/freebsd/htaccess-–-синтаксис-директивы-использован/

Обновлено: 13.03.2015