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

Заборона доступу на групу файлів по розширенню (по масці):

order allow,deny
deny from all

Дозвіл або заборона на читання по розширенню.
Заборона на доступ до файлів *.inc:

order allow,deny
deny from all

Варто зазначити, що заборони файлу .htaccess будуть діяти тільки при зверненні до потрібного документу через браузер користувача.

Заборона доступу на конкретний файл:

order allow,deny
deny from all

Заборона на читання 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:

AuthName «Users zone»
AuthType Basic
AuthUserFile /pub/home/login/.htpasswd
require valid-user

Пароль на групу файлів по розширенню:

А далі як пароль на файл

Перенаправлення (перенаправлення)

Перенаправлення відвідувачів на інший сайт:
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