Несколько примеров директив, которые Вы можете
использовать в файле .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 При желании
можем дать
deny from all # Запрет
на все файлы. Никто ничего не увидит, но скриптам, работающим на стороне сервера
файлы все равно будут доступны.
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 будет доступен ваш сайт
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.
Домен Вы в любом случае должны присвоить сайту siteN. А затем уже с помощью mod_rewrite можете перенаправлять обращения к нему в какой-либо подкаталог этого сайта. Например, все обращения к субдоменам, вида *.domen.com чтоб вели на основную зону в папку в корне, и обращаться к ней как к субдомену. Т.е создаем папку domen.com/news/ А ссылаемся на нее везде как http://news.domen.com/
RewriteEngine
On
Options +FollowSymlinks
RewriteBase /
RewriteCond %{HTTP_HOST} ^subdomen1.mydomain.*
RewriteCond %{REQUEST_URI} !/subdomen1/
RewriteRule ^(.*)$ /subdomen1/$1
В описаном варианте, каждую папку мы прописываем отдельно в htaccess . А для удобства можно один раз прописать, что все обращения к субдоменам транслировать как обращения к папкам
RewriteEngine
On
Options +FollowSymlinks
RewriteBase /
RewriteCond
%{HTTP_HOST} ^.*\.energodar.net$
RewriteRule ^(.*) %{HTTP_HOST}$1
RewriteRule ^(.*)\.energodar.net(.*) /$1$2
Тоже самое, но только папка с поддоменами называется sites
RewriteEngine
On
Options +FollowSymlinks
RewriteBase /
RewriteCond %{HTTP_HOST} ^(.*)\.energodar.net$
RewriteCond %{REQUEST_URI} !^/sites
RewriteRule ^(.*) %{HTTP_HOST}$1
RewriteRule ^(.*)\.energodar.net(.*) /sites/$1/$2
Еще вариант, при котором сайт видится ещё и через dom2.dom1/sub/
RewriteEngine
On
Options +FollowSymlinks
RewriteBase /
RewriteCond
%{HTTP_HOST} ^sub\.dom2\.dom1$
RewriteCond %{REQUEST_URI} !^/sub/.*$
RewriteRule ^(.*)$ /sub/$1