FAQ по файлу .htaccess (общий)

В данном разделе мы привели несколько примеров директив, которые Вы можете использовать в файле .htaccess для более полной и точной настройки веб-сервера Apache.

DirectoryIndex index.php

Устанавливает файл для директории, который грузится по умолчанию. Возможно указание нескольких имен через пробел, тогда сервер будет просматривать список слева направо и выдаст по умолчанию первый существующий файл. В случае, если ни одного из файлов, заданных директивой DirectoryIndex, не найдено в текущем каталоге, то web-сервер выдает 403-ю ошибку.

Пример: DirectoryIndex index.php index.shtml index.html

ErrorDocument 404 /index.html

Файл, который сервер выдает в случае, если произошла ошибка с указанным номером. Путь к файлу указывается от корневой директории сайта. Номера некоторых ошибок: 404 - файл не найден; 500 - ошибка скрипта; 403 - доступ запрещен.

CharsetRecodeMultipartForms Off

Директива выключает перекодировку передаваемых на сервер данных. Используется в тех случаях, когда скрипт производит загрузку на сервер каких-либо файлов, например картинок. Важно чтобы файл .htaccess лежал в той же директории, что и скрипт с формой закачки, либо находился выше его уровнем.

Устанавливаем страницу, которая будет открываться в браузере, если не указана конкретная, а только путь к директории.

Пропишем в файле .htaccess:

DirectoryIndex primer.php

При обращении к директории, в которой лежит .htaccess, будет грузиться файл primer.php5

Запрет доступа с помощью .htaccess При желании можем дать запрет на все файлы:

deny from all

Никто ничего не увидит. обращаем внимание на то, что скриптам, работающим на стороне сервера файлы все равно будут доступны.

Разрешить доступ посетителю только с определенного ip:

Order Allow,Deny
deny from all
allow from 192.168.8.1

Всем кроме посетителя с IP 192.168.8.1 доступ запрещен.

Также можно указать вместо айпи доменное имя

Order Deny,Allow
Deny from all
Allow from .test.com

Только для .test.com будет доступен ваш сайт

Перенаправляем посетителей на другой URL (редирект). В .htaccess пишем

Redirect / http://www.test.com

Все посетители будут перенаправлены на http://www.test.com

Перенаправление посетителей при запросе определенных страниц

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

Добавляем в .htaccess:

redirect /scripts http://www.microsoft.com
redirect /_vti_bin http://www.microsoft.com
redirect /MSADC http://www.microsoft.com
redirect /_mem_bin http://www.microsoft.com
redirect /msadc http://www.microsoft.com
RedirectMatch (.*)cmd.exe$ http://www.microsoft.com$1

Любой запрос с адресом /_vti_bin или /scripts будет автоматически перенаправляться на сайт Microsoft.

Редирект посетителей в зависимости от реффера (ссылающейся страницы)

RewriteCond %{HTTP_REFERER} http://www.xakers.ru
RewriteRule ^/hack.html$ /von.html [L]

В данном случае все с форума /www.xakers.ru вместо файла hack.html получат файлик von.html

Ставим запрет на отображение содержимого директории при отсутствии индексного файла

Options -Indexes

У нас на серверах установлено по умолчанию. Чтобы, наоборот, разрешить веб-серверу отображать содержимое директории при отсутствии индексного файла, надо добавить инструкцию:

Options +Indexes

Поставить пароль на директорию

Доступ к директории извне контролируется файлами .htaccess и .htpasswd. Более подробно читайте в "Веб-сервер Apache (.htaccess, .htpasswd)".

Также полезные материалы: