Настройка .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.php

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

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

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

Order Deny, Allow
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