##
## +-------------------------------------------------------------------------+
## | Джентльменский набор Web-разработчика                                   |
## | Версия: Денвер-2 2006-10-04                                             |
## +-------------------------------------------------------------------------+
## | Copyright (C) 2001-2004 Дмитрий Котеров.                                |
## +-------------------------------------------------------------------------+
## | Данный файл является частью комплекса программ "Денвер-2". Вы не можете |
## | использовать  его в коммерческих  целях.  Никакие другие ограничения не |
## | накладываются.  Если вы хотите внести изменения в исходный код,  авторы |
## | будут рады получить от вас комментарии и замечания. Приятной работы!    |
## +-------------------------------------------------------------------------+
## | Домашняя страница: http://denwer.ru                                     |
## | Контакты: http://forum.dklab.ru/denwer                                  |
## +-------------------------------------------------------------------------+
##
## Спасибо Андрею Любченко за предоставленный перевод.
## Дополнительные комментарии и корректура Дмитрия Котерова.
##

#
# Основан на конфигурационных файлах сервера NSCA, созданных Робом МакКулом.
#
# Главный файл конфигурации сервера Apache, содержащий директивы,
# управляющие работой сервера. За более детальной информацией
# обращайтесь по адресу http://www.apache.org/docs/.
#
# Не стоит читать эти директивы без понимания их роли. Они 
# приведены здесь лишь в качестве примера одного из возможных 
# вариантов. В случае сомнений обращайтесь к сопроводительной 
# документации. Считайте, что вас предупредили.
#
# После просмотра и анализа файла httpd.conf сервер 
# попробует найти и обработать файлы:
# /usr/local/apache/conf/srm.conf, а затем
# /usr/local/apache/conf/access.conf,
# если вы не переопределили эти имена директивами ResourceConfig 
# и/или AccessConfig.
#
# Директивы конфигурации сгруппированы в три основных раздела:
#
# 1. Директивы, управляющие процессом Apache в целом (глобальное
#    окружение).
# 2. Директивы, определяющие параметры "главного" сервера, или 
#    сервера "по умолчанию", отвечающего на запросы, которые 
#    не обрабатываются виртуальными хостами. Эти директивы задают
#    также установки по умолчанию для всех остальных виртуальных хостов.
# 3. Установки для виртуальных хостов, позволяющие обрабатывать 
#    запросы Web одним-единственным сервером Apache, но направлять 
#    по раздельным IP-адресам или именам хостов.
#
# Файлы конфигурации программы и журналы регистрации событий 
# (в программисткой среде они чаще называются "конфигами" и "логам",
# так что, я думаю, ничего страшного не произойдет, если я буду
# придерживаться этой терминологии и здесь):
# Если имена файлов, определенных вами для управления сервером,
# начинаются с символа / (или "диск:/" для Win32), сервер будет
# использовать явно указанный в этом имени полный путь. Если же имена не
# начинаются с "/", то для определения пути будет задействовано значение
# директивы ServerRoot. Так, logs/foo.log при значении ServerRoot
# равном /usr/local/apache будет интерпретироваться сервером как
# /usr/local/apache/logs/foo.log.
#
# Внимание: В определении имен файлов вы должны использовать прямые слэши
# вместо обратных (т. е. c:/apache вместо c:\apache). Если не указано
# имя диска, по умолчанию будет выбран диск, на котором размещен
# Apache.exe; тем не менее, во избежание путаницы, рекомендуется, чтобы
# вы всегда явно указывали в абсолютных путях имя диска.
#

### Раздел 1: Глобальное окружение
#
# Директивы в этом разделе определяют общие параметры Apache, такие как,
# например, число запросов, которое он может обрабатывать одновременно,
# или где ему искать свои файлы конфигурации.

#
# Директива ServerType может иметь значения inetd или standalone. 
# Режим inetd поддерживается только на платформах Unix.
#
ServerType standalone

#
# ServerRoot: вершина дерева каталогов, в которых содержатся файлы
# конфигурации, регистрации и отслеживания ошибок.
#
# В конце строки добавлять слэш не следует!
#
ServerRoot "/usr/local/apache"
  
#
# PidFile: Файл, куда сервер при запуске должен записывать свой 
# идентификатор процесса.
#
PidFile logs/httpd.pid

#
# ScoreBoardFile: Учетный файл, предназначенный для хранения внутренней
# информации процесса сервера. Он необходим не для всех архитектур. 
# Если для вашей он нужен (об этом можно судить по тому, будет ли создан
# такой файл, когда вы запустите Apache), то вы должны обеспечить, чтобы
# никакие два экземпляра процесса Apache не использовали один и тот же
# учетный файл.
#
ScoreBoardFile logs/apache_runtime_status

#
# В стандартной конфигурации сервер обработает при запуске файлы
# httpd.conf, srm.conf и access.conf (именно в таком порядке). 
# Последние два файла в настоящее время поставляются пустыми, поскольку
# теперь рекомендуется для простоты, чтобы все директивы указывались в
# одном файле (httpd.conf).
# Закомментированные ниже значения встроены в сервер по умолчанию. 
# Если вы используете другие имена файлов, отредактируйте и
# раскомментируйте "умолчальные". Если потребуется, чтобы сервер 
# проигнорировал эти файлы, вы можете указать значения /dev/null (для 
# Unix) или nul (для Win32).
#
#ResourceConfig conf/srm.conf
#AccessConfig conf/access.conf

#
# Timeout: Время ожидания в секундах, прежде чем сервер примет или
# отправит сообщение о тайм-ауте.
#
Timeout 300

#
# KeepAlive: Признак, позволено или нет устанавливать долговременные 
# соединения (persistent connections) (т.е. когда обрабатывается более 
# одного запроса на соединение). Для запрета укажите значение Off.
#
KeepAlive On

#
# MaxKeepAliveRequests: Максимальное число запросов, допустимое в одном
# долговременном соединении. Для снятия ограничений обнулите параметр,
# но для максимального быстродействия мы рекомендуем указать заведомо
# большое конкретное значение.
#
MaxKeepAliveRequests 100

#
# KeepAliveTimeout: Время ожидания в секундах следующего запроса от
# одного и того же клиента в одном подключении.
#
KeepAliveTimeout 15

#
# Для обработки запросов Apache для Win32 всегда порождает один дочерний
# процесс. Если он по каким-либо причинам будет преждевременно завершен,
# другой дочерний процесс создается автоматически. Поступающие запросы
# внутри такого дочернего процесса обрабатываются отдельными потоками.
# Следующие две директивы управляют поведением таких потоков и процессов.

#
# MaxRequestsPerChild: Число запросов, которое позволено обрабатывать
# дочернему процессу до переполнения. При переполнении дочерний процесс
# будет принудительно завершен, чтобы избежать проблем при длительной
# непрерывной работе, если Apache (или используемые им библиотеки),
# допускают утечку памяти или других ресурсов. На большинстве систем 
# это не требуется, но некоторые (например, Solaris) имеют заметные
# утечки в библиотеках. Если нет других рекомендаций, для Win32
# установите значение 0 (без ограничений).
#
MaxRequestsPerChild 0

#
# ВНИМАНИЕ: значение MaxRequestsPerChild, отличное от 1, 
# иногда приводит к аварийному завершению mod_php, начиная с версии
# PHP 4.3.0-pre2 (можно протестировать по адресу 
# http://localhost/phpmyadmin/, нажимая несколько раз Reload). 
#

#
# ThreadsPerChild: Число одновременно выполняющихся потоков (т.е. 
# запросов), которое допускает сервер. Установите это значение в 
# соответствии с требуемой загрузкой сервера (больше активных запросов 
# одновременно означает, что они обслуживаются медленнее) и объемом 
# системных ресурсов, который вы можете предоставить серверу.
#
ThreadsPerChild 20

#
# Listen: Позволяет привязать Apache к конкретному адресу IP, и/или
# порту, в дополнение к порту, определенному по умолчанию. См. также
# директиву <VirtualHost>.
#
# Комментарий Денвера: не изменяйте данную директиву здесь. Лучше 
# сделайте это непосредственно перед шаблоном виртуального хоста
# (см. ниже) - это позволит легко "перевешивать" Apache на 
# произвольный порт.
#
#Listen 3000
#Listen 12.34.56.78:80

#
# BindAddress: Этой опцией вы можете обеспечить поддержку виртуальных
# хостов. Данная директива используется для указания серверу адреса IP,
# который необходимо отслеживать. Она может содержать *, адрес IP или
# полное имя домена Интернет. См. также директивы <VirtualHost> и Listen.
#
# Комментарий Денвера:
#
# Данная директива устарела, и совместно с Listen НЕ РАБОТАЕТ. Во всех 
# случаях рекомендуется использовать вместо нее Listen (см. ниже).
#
# Если вы хотите сделать сервер видимым извне, используйте директиву
# Listen, а не BindAddress!
#
#BindAddress *


#
# Комментарий Денвера: ВНИМЕНИЕ!
#
# Следующая далее строка была закомментирована из соображений 
# безопасности: для того, чтобы сервер Apache не был виден извне,
# а работал только с текущей машины. Открытость сервера  извне
# потенциально делает его легкой добычей для хакеров.
#
# Т.к. по умолчанию директива Listen не включена (закомментирована),
# используются значения, указанные в директиве Listen, предшествующей
# шаблону виртуального хоста (см. ниже <VirtualHost>). Если вы хотите
# открыть сервер для всеобщего доступа (что НЕ рекомендуется), раскройте
# комментарий.
# 
#Listen *:80

#
# Модули Apache, связанные с ним статически на этапе компиляции.
#
# Следующие далее модули включены в стандартный бинарный дистрибутив Apache
# для Windows. Чтобы изменить стандартный список таких модулей, снимите 
# знак комментария со следующих строк и измените список тех модулей,
# который хотите включить.
#
# Внимание: эта возможность является опасной и потенциально может привести
# к неработоспособности сервера. Не используйте приведеные ниже директивы,
# если у вас нет достаточного опыта.
#
#ClearModuleList
#AddModule mod_env.c
#AddModule mod_log_config.c
#AddModule mod_mime.c
#AddModule mod_negotiation.c
#AddModule mod_include.c
#AddModule mod_autoindex.c
#AddModule mod_dir.c
#AddModule mod_isapi.c
#AddModule mod_cgi.c
#AddModule mod_asis.c
#AddModule mod_imap.c
#AddModule mod_actions.c
#AddModule mod_userdir.c
#AddModule mod_alias.c
#AddModule mod_access.c
#AddModule mod_auth.c
#AddModule mod_so.c
#AddModule mod_setenvif.c

#
# Поддержка динамически разделяемых объектов (DSO, Dynamic Shared Object)
#
# Для того чтобы иметь возможность использовать модуль, созданный как
# библиотека DSO, вам следует поместить в этом месте соответствующую
# строку "LoadModule". Тогда модуль будет доступен прежде обращения к нему.
#
# За детальными разъяснениями механизмов DSO вы можете обратиться к 
# файлу README.DSO в дистрибутиве Apache 1.3, а также выполнить 
# команду 'apache -l', чтобы получить список уже встроенных 
# (статически скомпонованных и таким образом всегда доступных)
# модулей сервера Apache.
#
# Внимание: порядок, в котором загружаются модули, имеет большое
# значение. Не меняйте нижеследующий порядок без консультации со
# специалистом.
#
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
##LoadModule mime_magic_module modules/mod_mime_magic.so # по нашим тестам, данный модуль конфликтует с SSI.
#LoadModule status_module modules/mod_status.so
#LoadModule info_module modules/mod_info.so
#LoadModule speling_module modules/mod_speling.so
LoadModule rewrite_module modules/mod_rewrite.so
#LoadModule anon_auth_module modules/mod_auth_anon.so
#LoadModule dbm_auth_module modules/mod_auth_dbm.so
#LoadModule digest_auth_module modules/mod_auth_digest.so
#LoadModule digest_module modules/mod_digest.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
#LoadModule expires_module modules/mod_expires.so
#LoadModule headers_module modules/mod_headers.so
#LoadModule usertrack_module modules/mod_usertrack.so
##LoadModule unique_id_module modules/mod_unique_id.so # по нашим тестам, сильно замедляет работу

#
# Комментарий Денвера: следующая строчка включает mod_php4 для скриптов с 
# расширением ".php".
#
# Вы можете указать здесь путь и к своей собственной инсталляции PHP4:
# Денвер автоматически "подхватит" ее и сконфигурирует.
#
LoadModule php4_module "/usr/local/php/sapi/php4apache.dll"

#
# Комментарий Денвера: следующая строчка включает mod_php5 для скриптов с 
# расширением ".php".
#
# Mod_php4 и mod_php5 взаимоисключающи. Если вы хотите использовать и
# PHP4, и PHP5 на одном сервере, один из языков придется установить
# в виде CGI-обработчика (см. ниже).
#
# Вы можете указать здесь путь и к своей собственной инсталляции PHP:
# Денвер автоматически "подхватит" ее и сконфигурирует.
#
#LoadModule php5_module "/usr/local/php5/php5apache.dll"



#
# Для mod_rewrite
#
RewriteEngine On

#
# Директива ExtendedStatus определяет, будет ли Apache генерировать
# детальную информацию о состоянии (ExtendedStatus On) или только 
# общую информацию (ExtendedStatus Off) при обращении к функции 
# server-status. Значение по умолчанию - Off.
#
#ExtendedStatus On

### Раздел 2: Конфигурация сервера по умолчанию
#
# Директивы этого раздела устанавливают значения, используемые "главным
# сервером", который отвечает на запросы, не обрабатываемые виртуальными
# хостами. Эти значения обусловливают также установки по умолчанию для
# любых контейнеров <VirtualHost>, которые вы будете определять
# здесь далее.
#
# Любые из директив раздела могут быть включены в контейнер <VirtualHost>; в 
# таком случае установки по умолчанию будут переопределены ими для этого 
# виртуального хоста.
#

#
# Если в директиве ServerType (установленной ранее в разделе "Глобальное
# окружение") задано значение inetd, следующие несколько директив не
# имеют никакого эффекта, поскольку их значение определено конфигурацией
# inetd. Переходите к директиве ServerAdmin.

#
# Port: Номер порта, к которому подключен сервер.
#
# Комментарий Денвера: данная директива устарела. Используйте вместо нее 
# директиву Listen, непосредственно предшествующую шаблону виртуального 
# хоста (см. в конце файла).
#
#Port 80

#
# ServerAdmin: Ваш адрес, по которому следует направлять сообщения о
# проблемах с сервером. Этот адрес появится на некоторых сгенерированных
# сервером страницах, таких, как сообщения об ошибках.
#
ServerAdmin webmaster@localhost

#
# Директива ServerName задает имя хоста, возвращаемое клиенту, если это
# имя отличается от того имени, которое получила программа (например,
# используйте www вместо реального имени хоста).
#
# Внимание: Вы не можете просто выдумывать имена хостов в надежде, что
# это сработает. Имя, которое вы определяете здесь, должно быть
# действительным именем DNS для вашего хоста. В случае затруднений с 
# пониманием изложенного справьтесь у 
# администратора сети.
# Если ваш хост не имеет зарегистрированного имени DNS, вы можете указать 
# здесь его адрес IP. В таком случае вам придется обращаться к хосту по
# адресу (например, http://123.45.67.89/) и это может сильно осложнить
# переадресацию ресурсов.
#
ServerName localhost

#
# DocumentRoot: Каталог, в котором будут находиться ваши документы (т.е.
# Web-страницы). По умолчанию, все запросы выбираются из этого каталога;
# для указания же других мест могут использоваться символические ссылки
# (links) и псевдонимы (aliases).
#
DocumentRoot "/home"

#
# Каждый каталог, к которому Apache имеет доступ, может быть
# сконфигурирован в отношении свойств и сервисов, которые могут быть
# разрешены и/или запрещены в этом каталоге (и его подкаталогах).
#
# Сначала мы определяем свойства "по умолчанию".
#

#
# Обратите внимание, что с этого места и далее вы должны явным образом
# указывать свойства, которые могут быть разрешены, - так что если что-то
# не работает так, как вы ожидаете, сначала убедитесь, что вы разрешили
# это свойство ниже.

#
# Задаем настройки по умолчанию для всех сайтов.
#
# Внимание: в результате неточности в Apache, начиная с версии 
# 1.3.26, для корректной работы mod_negotiation в данной директиве
# можно указывать только "/" или "диск:/home". Указать, например,
# "/home" нельзя, ибо Apache почему-то не ассоциирует такой путь
# с путем в файловой системе. В то же время, "/" рассматривается
# всегда как "значение по умолчанию".
<Directory "/">

#
# Опции могут иметь значения None, All или любую комбинацию из
# Indexes, Includes, FollowSymLinks, ExecCGI, или MultiViews.
#
# Заметьте, что MultiViews должен быть указан отдельно -
# Options All для этого не достаточно.
#
    Options Indexes FollowSymLinks Includes MultiViews

#
# Директива перечисляет опции, которые могут быть переопределены в
# файлах .htaccess. Значением может быть All или любая комбинация из
# Options, FileInfo, AuthConfig, и Limit.
#
    AllowOverride All

#
# Эти директивы определяют, какие пользователи имеют доступ к информации,
# расположенной на этом сервере.
#
    Order allow,deny
    Allow from all
</Directory>

#
# UserDir: Название каталога, которое прибавляется к именам
# пользовательских домашних каталогов при получении запроса ~user 
# (например, http://www.server.com/~username).
#
# Под Win32 мы в настоящее время не пытались устанавливать каталог
# регистрации пользователя, поэтому приходится работать с форматом,
# приведенным ниже.
#
# <IfModule mod_userdir.c>
#    UserDir "/usr/local/apache/users/"
# </IfModule>

#
# Следующие директивы управляют доступом к директории UserDir.
# Приведенный ниже пример предназначен для сайта, в котором
# пользовательские директории работают только на чтение.
#
#<Directory "f:/usr/local/apache/users">
#    AllowOverride FileInfo AuthConfig Limit
#    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
#    <Limit GET POST OPTIONS PROPFIND>
#        Order allow,deny
#        Allow from all
#    </Limit>
#    <LimitExcept GET POST OPTIONS PROPFIND>
#        Order deny,allow
#        Deny from all
#    </LimitExcept>
#</Directory>

#
# DirectoryIndex: Имя файла (или файлов), используемое в качестве 
# предопределенной страницы-указателя или оглавления. Если вы указываете
# несколько имен, разделяйте их пробелами.
#
<IfModule mod_dir.c>
    DirectoryIndex index.php index.htm index.html index.shtm index.shtml
</IfModule>

#
# AccessFileName: Имя файла, который сервер ищет в каждом каталоге для 
# определения прав доступа.
#
AccessFileName .htaccess

#
# Следующие строки предотвращают доступ к файлам .htaccess со стороны
# Web-клиентов. Поскольку файлы .htaccess нередко содержат информацию об
# аутентификации, доступ к ним запрещен из соображений безопасности. Вы
# можете удалить эти строки (или поставить символ комментария), 
# если допускаете, чтобы посетители могли просматривать содержимое файлов 
# .htaccess из Web. Если вы поменяете значение директивы AccessFileName 
# выше, не забудьте внести и сюда соответствующие изменения.
#
# Рекомендуется также использовать имена вроде .htpasswd для файлов 
# паролей Apache, чтобы они также были защищены от просмотра.
#
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files>

#
# CacheNegotiatedDocs: По умолчанию с каждым документом Apache отправляет 
# инструкцию "Pragma: no-cache", что является указанием proxy-серверам не 
# кэшировать данный документ. Если раскрыть следующую строку, то 
# поведение proxy-серверов изменится и им будет разрешено кэшировать 
# документы.
#
#CacheNegotiatedDocs

#
# UseCanonicalName: (Впервые в версии 1.3) Если эта директива включена
# (On), то всякий раз, когда Apache требуется получить текущий доменный 
# адрес (т.е. адрес сервера, с которого поступает ответ на запрос), для 
# формирования "канонического имени" он будет использовать значения 
# директив ServerName и Port, когда это возможно. Если директива выключена 
# (Off), Apache будет по возможности использовать значения, предоставленные 
# клиентом. Эта директива влияет также на значения переменных SERVER_NAME 
# и SERVER_PORT в CGI-сценариях.
#
UseCanonicalName Off

#
# Директива TypesConfig описывает расположение файла mime.types 
# (или его эквивалента).
#
<IfModule mod_mime.c>
    TypesConfig conf/mime.types
</IfModule>

#
# Директива DefaultType определяет MIME-тип, который будет использоваться
# для какого-либо документа, если сервер не сможет определить его по иным 
# признакам, например, по расширению имени файла. Если ваш сервер
# содержит по большей части тексты или HTML-документы, text/plain
# является приемлемым решением. Если большая часть содержимого является
# исполняемыми файлами или изображениями, вы можете поменять значение на
# application/octet-stream, чтобы предотвратить попытку браузера
# показать содержимое двоичного файла.
#
DefaultType text/plain

#
# Модуль mod_mime_magic позволяет серверу использовать разнообразные
# приемы определения типа файла по его содержимому. Директива
# MIMEMagicFile указывает ему файл, где даны описания таких приемов. 
# По умолчанию mod_mime_magic не включен в состав сервера (вы должны
# загрузить его сами с помощью директивы LoadModule - см. абзац DSO в
# разделе "Глобальное окружение", или заново откомпилировать сервер 
# с этим модулем), поэтому директива MIMEMagicFile заключена в контейнер
# <IfModule>. Это означает, что она будет обработана только в том случае, 
# если модуль mod_mime_magic уже загружен. 
#
<IfModule mod_mime_magic.c>
    MIMEMagicFile conf/magic
</IfModule>

#
# Директива HostnameLookups определяет, записывать ли в журнал доменные
# имена, или же только адреса IP, т.е. www.apache.org (On) или
# 204.62.129.132 (Off). По умолчанию - Off, поскольку для снижения
# нагрузки на сеть было бы лучше, если бы вы использовали эту
# возможность, зная о последствиях. Отслеживание по именам означает,
# что каждый клиентский запрос приведет как минимиум к еще одному запросу
# к серверу имен для преобразования IP-адреса в имя.
#
HostnameLookups Off

#
# ErrorLog: Расположение файла регистрации ошибок. Если вы не определяете
# директиву ErrorLog внутри контейнера <VirtualHost>, сообщения об
# ошибках, возникших при работе этого хоста, будут записаны в указанный
# ниже файл. В противном случае все сообщения направятся в специфичный
# для виртуального хоста журнал.
#
ErrorLog logs/error.log

#
# LogLevel: Определение характера ошибок, которые записываются в
# error.log. Возможные значения в порядке убывания количества сообщений:
# debug, info, notice, warn, error, crit, alert, emerg.
#
LogLevel warn

#
# Следующие директивы указывают псевдонимы некоторых форматов, которые 
# используются в директиве CustomLog (см. ниже).
#
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

#
# Расположение и формат файла регистрации (лога). Если вы не определяете
# никаких лог-файлов внутри контейнера <VirtualHost>, сведения
# будут записываться здесь. Если же вы определяете отдельный лог-файл 
# для виртуального хоста, доступ будет отслеживаться в этом логе,
# но не здесь.
#
CustomLog logs/access.log common

#
# Если вы хотите, чтобы велись журналы имен пользовательских браузеров, 
# раскомментируйте следующие директивы.
#
#CustomLog logs/referer.log referer
#CustomLog logs/agent.log agent

#
# Если вы предпочитаете иметь один лог-файл с информацией о доступе,
# агентах и ссылках (комбинированный формат лог-файла), вы можете
# использовать следующую директиву.
#
#CustomLog logs/access.log combined

#
# Позволяет добавить дополнительную строку, содержащую версию сервера и имя
# виртуального хоста на страницах, сгенерированных сервером (сообщениях
# об ошибках, листингах каталогов FTP, в вывод модулей mod_status и
# mod_info, но не в CGI-документах). Чтобы дополнительно включить ссылку
# mailto:, содержащую значение директивы ServerAdmin, установите значение
# EMail. 
# Допустимые значения: On | Off | Email
#
ServerSignature EMail

# 
# Apache по умолчанию анализирует первую строку каждого CGI-сценария.
# Если эта строка является комментарием и выглядит так: символ (#),
# затем восклицательный знак (!) и, наконец, путь к 
# программе-интерпретатору, по которому осуществляется запуск 
# сценария, Apache запускает этот интерпретатор.
# Например, для perl-сценариев, стартуемых под управлением perl.exe
# из каталога C:\Program Files\Perl, эта строка должна выглядеть так:

   #!c:/program files/perl/perl

# Внимание: вы не должны вставлять пробелы перед символом (#). Кроме
# того, указанная специальная строка должна быть именно первой строкой
# файла. Конечно, для запускаемого файла должна быть разрешена обработка
# CGI - например, путем указания директивы ScriptAlias или 
# Options ExecCGI.
#
# Тем не менее, Apache для Windows позволяет в дополнение к "магической"
# строке использовать Реестр для поиска ассоциаций с расширениями.
# Команда для запуска файла указанного типа в этом случае ищется в
# Реестре точно так же, как это происходит, например, при работе 
# Проводника, когда вы выполняете двойной щелчок на файле. Действия по
# запуску сценария могут быть сконфигурированы из меню Вид Проводника. 
# Там необходимо выбрать Свойства папки и переключиться на вкладку
# Типы файлов. Нажатие на кнопку Изменить позволяет задать действие,
# которое Apache выполнит при попытке открытия файла. Если это не
# удастся, Apache будет искать интерпретатор при помощи "магической"
# строки. Возможно, поведение сервера изменится в Apache версии 2.0.
#
# Чтобы разрешить это специфичное для Windows поведение сервера и, таким
# образом, запретить анализ "магической" строки, удалите комментарий 
# со следующей директивы:
#
ScriptInterpreterSource script

#
# Эта директива может быть помещена в отдельный блок <Directory> или
# в файл .htaccess с указанием в качестве значения registry 
# (поведение Windows) или script (анализ "магической" строки, принятый 
# в Unix). В таком случае она будет перекрывать директиву, расположенную
# здесь, в главном конфигурационном файле сервера.
#



#
# Псевдонимы: Можно добавлять любое количество псевдонимов (без
# ограничений).
# Формат: Alias псевдоним действительное_имя
#
<IfModule mod_alias.c>

    # Обратите внимание, что если вы включаете завершающий слэш в
    # "псевдоним", то сервер потребует его присутствия и в URL. Так,
    #  /icons не будет разыменован в данном примере, только /icons/.
    #
    Alias /icons/ "/usr/local/apache/icons/"
    
  Alias /errors__/ "/usr/local/apache/errors/"
  ErrorDocument 405 /errors__/405.php
  ErrorDocument 404 /errors__/404.php
  ErrorDocument 403 /errors__/403.php
  ErrorDocument 500 /errors__/500.php

    <Directory "/usr/local/apache/icons">
        Options Indexes MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>

    #
    # ScriptAlias: Указывает каталог, который содержит серверные
    # сценарии. Свойства ScriptAlias'ов такие же, как и у простых 
    # псевдонимов, за исключением того, что документы в каталоге 
    # "действительное_имя" считаются приложениями и выполняются 
    # на сервере, а не отправляются клиенту. К директиве 
    # ScriptAlias применяются те же правила в отношении 
    # завершающего /, что и к Alias. 
    #
    ScriptAlias /cgi-bin/ "/home/cgi-glob/"
    ScriptAlias /cgi-glob/ "/home/cgi-glob/"
</IfModule>
# Конец определений псевдонимов.

#
# Директива Redirect позволяет сообщить клиенту о документе, который 
# существовал некогда в пространстве имен сервера, но был перемещен 
# в другое место. Она информирует клиента о его новом адресе.
#
# Формат: Redirect старый_URL новый_URL
#

#
# Директивы, управляющие генерацией сервером  листингов каталогов.
#
<IfModule mod_autoindex.c>

    #
    # FancyIndexing означает, что вы предпочитаете листинги с
    # "украшательствами". О других возможных значениях директивы
    # IndexOptions см. сопроводительную документацию.    
    #
    IndexOptions FancyIndexing

    #
    # Директивы AddIcon* указывают серверу, какими ярлыками 
    # будут украшены имена файлов в листинге каталога. Ярлыки изображаются
    # только в режиме FancyIndexing.
    #
    AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

    AddIconByType (TXT,/icons/text.gif) text/*
    AddIconByType (IMG,/icons/image2.gif) image/*
    AddIconByType (SND,/icons/sound2.gif) audio/*
    AddIconByType (VID,/icons/movie.gif) video/*

    AddIcon /icons/binary.gif .bin .exe
    AddIcon /icons/binhex.gif .hqx
    AddIcon /icons/tar.gif .tar
    AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
    AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
    AddIcon /icons/a.gif .ps .ai .eps
    AddIcon /icons/layout.gif .html .shtml .htm .pdf
    AddIcon /icons/text.gif .txt
    AddIcon /icons/c.gif .c
    AddIcon /icons/p.gif .pl .py
    AddIcon /icons/f.gif .for
    AddIcon /icons/dvi.gif .dvi
    AddIcon /icons/uuencoded.gif .uu
    AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
    AddIcon /icons/tex.gif .tex
    AddIcon /icons/bomb.gif core

    AddIcon /icons/back.gif ..
    AddIcon /icons/hand.right.gif README
    AddIcon /icons/folder.gif ^^DIRECTORY^^
    AddIcon /icons/blank.gif ^^BLANKICON^^

    #
    # DefaultIcon определяет ярлык для файла по умолчанию 
    # если он не задан явно.
    #
    DefaultIcon /icons/unknown.gif

    #
    # AddDescription позволяет размещать краткое описание после имени
    # файла в индексах (листингах каталогов), сгенерированных сервером.
    # Такие описания выводятся только в режиме FancyIndexing.
    #
    # Формат: AddDescription "строка_описания" .расширение_имени_файла
    #
    #AddDescription "GZIP compressed document" .gz
    #AddDescription "tar archive" .tar
    #AddDescription "GZIP compressed tar archive" .tgz

    #
    # ReadmeName задает имя README-файла, который добавляется к листингу
    # каталога по умолчанию.
    #
    # HeaderName указывает имя файла, выводимого в
    # заголовке листингов каталога.    
    #
    # Если задана директива MultiViews в числе значений Options,
    # сначала сервер попытается открыть файл имя.html и включит его в
    # листинг, если файл существует. Если файл имя.html не существует,
    # сервер переориентируется на открытие файла 
    # имя.txt и включение его в листинг в виде простого текста.
    #
    ReadmeName README
    HeaderName HEADER

    #
    # IndexIgnore описывает набор имен файлов, которые должны быть
    # исключены из листинга. В именах допустимы метасимволы подстановки 
    # в стиле shell.
    IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

</IfModule>
# Конец секции директив управления листингами.

#
# Типы документов.
#
<IfModule mod_mime.c>

    #
    # AddEncoding позволяет вам заставить определенные браузеры
    # (Mosaic/X 2.1+) распаковывать информацию "на лету". 
    # Внимание: это свойство поддерживают не все браузеры. Несмотря 
    # на сходство имен, нижеприведенные директивы Add* не
    # имеют ничего общего с директивами оформления FancyIndexing,
    # приведенными выше.    
    #
    AddEncoding x-compress Z
    AddEncoding x-gzip gz tgz
    #
    #
    # AddLanguage позволяет указать язык документа. Вы можете затем
    # использовать протокол обмена (content negotiation) для выдачи
    # браузеру документа на том языке, который он (браузер) предпочитает.
    #
    # Примечание 1: Суффикс не обязательно должен совпадать с буквенным
    # кодом языка - те, у кого есть документы на польском языке
    # (стандартный сетевой буквенный код pl), могут воспользоваться
    # директивой AddLanguage pl .po во избежание конфликта с
    # распространенным суффиксом сценариев на языке Perl.
    #
    # Примечание 2: Нижеследующие примеры показывают, что в нескольких
    # случаях двухбуквенный код языка не совпадает с двухбуквенным кодом
    # страны. 
    # Например, "Датский/da" вместо "Дания/dk".
    #
    # Примечание 3: В случае ltz мы нарушаем требования RFC, используя
    # трехбуквенный код. Но уж тут ничего не поделаешь. В будущем,
    # возможно, несоответствия с RFC1766 будут устранены.
    #
    # Коды языков:
    # датский (Danish) da; голландский, Нидерланды (Dutch) nl;
    # английский (English) en; эстонский (Estonian) ee; 
    # французский (French) fr; немецкий (German) de; 
    # новогреческий (Greek-Modern) el; итальянский (Italian) it;
    # португальский (Portuguese) pt; 
    # люксембургский (Luxembourgeois*) ltz;
    # испанский (Spanish) es; шведский (Swedish) sv; 
    # каталонский (Catalan) ca; чешский (Czech) cz; 
    # русский (Russian) ru.
    #
    AddLanguage da .dk
    AddLanguage nl .nl
    AddLanguage en .en
    AddLanguage et .ee
    AddLanguage fr .fr
    AddLanguage de .de
    AddLanguage el .el
    AddLanguage he .he
    AddCharset ISO-8859-8 .iso8859-8
    AddLanguage it .it
    AddLanguage ja .ja
    AddCharset ISO-2022-JP .jis
    AddLanguage kr .kr
    AddCharset ISO-2022-KR .iso-kr
    AddLanguage nn .nn
    AddLanguage no .no
    AddLanguage pl .po
    AddCharset ISO-8859-2 .iso-pl
    AddLanguage pt .pt
    AddLanguage pt-br .pt-br
    AddLanguage ltz .lu
    AddLanguage ca .ca
    AddLanguage es .es
    AddLanguage sv .sv
    AddLanguage cz .cz
    AddLanguage ru .ru
    AddLanguage tw .tw
    AddLanguage zh-tw .tw
    AddCharset Big5         .Big5    .big5
    AddCharset WINDOWS-1251 .cp-1251
    AddCharset CP866        .cp866
    AddCharset ISO-8859-5   .iso-ru
    AddCharset KOI8-R       .koi8-r
    AddCharset UCS-2        .ucs2
    AddCharset UCS-4        .ucs4
    AddCharset UTF-8        .utf8

    #
    # LanguagePriority позволяет определить первоочередность некоторых 
    # языков при установлении протокола обмена.
    #
    # Возможно, вы захотите изменить предложенный порядок языков. Просто
    # перечислите их в порядке убывания приоритета.
    #
    <IfModule mod_negotiation.c>
        LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ru ltz ca es sv tw
    </IfModule>

    #
    # AddType позволяет слегка подправить mime.types, не редактируя его,
    # или объявить конкретные файлы имеющими определенный тип.
    #
    # Например, модуль PHP3 (этот модуль не является частью дистрибутива
    # сервера Apache), обычно использует следующие объявления:    
    #
    #AddType application/x-httpd-php3 .php3
    #AddType application/x-httpd-php3-source .phps
    #
    # And for PHP 4.x, use:
    #
    AddType application/x-httpd-php .php .phtml
    AddType application/x-httpd-php-source .phps

    AddType application/x-tar .tgz

    #
    # AddHandler позволяет отобразить определенные расширения имен файлов
    # на обработчики вне связи с определениями типов файлов. Обработчики
    # могут быть как встроены в сервер, так и объявлены директивой
    # Action (см. ниже).
    #
    # Для использования сценариев CGI -
    #
    AddHandler cgi-script .cgi .pl .py

    #
    # Если вы хотите использовать файлы, вставляемые сервером в ваши
    # документы (SSI - server side includes) снимите комментарий
    # со следующих строк:
    #
    AddType text/html .shtml .shtm
    AddHandler server-parsed .shtml .shtm .html

    #
    # Раскомментируйте следующую строку, чтобы разрешить Apache передачу
    # специальных файлов, которые не сопровождаются стандартными
    # заголовками HTTP (send-asis HTTP file).
    #
    AddHandler send-as-is asis

    #
    # Если вы хотите использовать карты-изображения, обрабатываемые
    # сервером, раскройте следующую директиву:    
    #
    AddHandler imap-file map

    #
    # Если вы хотите задействовать карты типов (type maps, см.
    # документацию), используйте:    
    #
    AddHandler type-map var

</IfModule>
# Конец блока директив описания типов документов.

#
# Директива Action позволяет определить приложение, выполняющее сценарии,
# когда запрашиваются содержащие их файлы. Это устраняет необходимость
# многократного упоминания URL часто используемых процессоров 
# CGI-сценариев.
# Формат: Action псевдоним_типа /псевдоним_пути/обработчик
#         Action среда/тип /псевдоним_пути/обработчик
#

#
# MetaDir: определяет имя каталога, в котором Apache может найти файлы с
# метаинформацией. Эти файлы содержат дополнительные заголовки HTTP,
# включаемые при отправке определенных документов. 
#
#MetaDir .web

#
# MetaSuffix устанавливает суффикс имени файла, содержащего метаинформацию.
#
#MetaSuffix .meta

#
# Настраиваемая реакция на ошибки (собственный стиль Apache) может быть
# трех типов.
#
# 1) простой текст
#    ErrorDocument 500 "Сервер сказал а-я-яй!"
#    N.B.: знак двойной кавычки просто означает, что далее следует текст.
# 
# 2) локальная переадресация
#    Чтобы перенаправить на локальный документ:
#    ErrorDocument 404 /missing.html
#    Перенаправлять можно и на сценарий, и на документ, использующий
#    включения на стороне сервера:
#    ErrorDocument 404 /cgi-bin/missing_handler.pl
# 
# 3) внешняя переадресация
#    ErrorDocument 402 http://some.other_server.com/info.html
#    Большинство переменных окружения, связанных с исходным запросом
#    станут недоступны при такой переадресации.

#
# Установки, связанные с браузером пользователя.
#
<IfModule mod_setenvif.c>

    #
    # Следующие директивы отменяют поддержку долговременных соединений 
    # (keepalives) и "смывание" заголовков HTTP. Первая директива отменяет 
    # их для Netscape 2.x и браузеров, которые "притворяются", что они - 
    # Netscape (известны некоторые проблемы с такими браузерами). Вторая
    # директива предназначена для Microsoft Internet Explorer 4.0b2,
    # реализация HTTP/1.1 которого не полна и не поддерживает должным 
    # образом keepalive, когда он используется в откликах 301 или 302
    # (переадресация).
    #
    BrowserMatch "Mozilla/2" nokeepalive
    BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0

    #
    # Следующая директива отключает отклики по HTTP/1.1 браузерам,
    # которые нарушают стандарты HTTP/1.0 и не могут разобрать 
    # основной отклик 1.1.    
    #
    BrowserMatch "RealPlayer 4\.0" force-response-1.0
    BrowserMatch "Java/1\.0" force-response-1.0
    BrowserMatch "JDK/1\.0" force-response-1.0

</IfModule>
# Конец настроек, связанных с браузерами.

#
# Следующая группа директив управляет отчетами о состоянии сервера,
# имеющего URL http://servername/server-status. Для приведения в
# соответствие с вашими нуждами измените .your_domain.com.
#
#<Location /server-status>
#    SetHandler server-status
#    Order deny,allow
#    Deny from all
#    Allow from .your_domain.com
#</Location>

#
# Эта группа директив управляет отчетами конфигурации удаленного
# сервера http://servername/server-info (требуется, чтобы был загружен
# mod_info.c). Замените .your_domain.com на имя вашего домена.
#
#<Location /server-info>
#    SetHandler server-info
#    Order deny,allow
#    Deny from all
#    Allow from .your_domain.com
#</Location>

#
# Поступали сообщения, что некие люди пытаются злоупотреблять древней
# ошибкой старых версий Apache. Ошибка касалась CGI-сценария,
# поставлявшегося с Apache. 
# Раскрыв следующие строки, вы можете переадресовать эти атаки
# на регистрирующий сценарий на phf.apache.org. А можете регистрировать
# их сами, используя сценарий support/phf_abuse_log.cgi.
#
#<Location /cgi-bin/phf*>
#    Deny from all
#    ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi
#</Location>

#
# Директивы proxy-сервера. 
#
#<IfModule mod_proxy.c>
    # Раскройте следующую строку для того, чтобы разрешить 
    # работу с proxy.
    # ProxyRequests On

    # <Directory proxy:*>
    # Order deny,allow
    # Deny from all
    # Allow from .your_domain.com
    # </Directory>

    #
    # Разрешить/запретить обработку заголовков HTTP/1.1 Via:.
    # Возможные значения: Off | On | Full | Block. Full добавляет в
    # заголовок версию сервера, Block удаляет все исходящие 
    # заголовки Via:.    
    #
    # ProxyVia On

    #
    # Для разрешения также кэширования отредактируйте и раскройте 
    # следующие строки (нельзя включать кэширование без указания
    # CacheRoot):    
    #
    # CacheRoot "f:/usr/local/apache/proxy"
    # CacheSize 5
    # CacheGcInterval 4
    # CacheMaxExpire 24
    # CacheLastModifiedFactor 0.1
    # CacheDefaultExpire 1
    # NoCache a_domain.com another_domain.edu joes.garage_sale.com

#</IfModule>
# Конец настроек proxy-сервера. 


### Раздел 3: Виртуальные хосты
#
# Директива VirtualHost: Если вы хотите держать на своей машине несколько 
# хостов, следует для каждого из них завести контейнер VirtualHost.
# Прежде чем их устанавливать, обращайтесь за подробными разъяснениями к
# документации по адресу http://www.apache.org/docs/vhosts/. Для проверки
# конфигурации ваших виртуальных хостов вы можете задавать опцию -S
# командной строки.

#
# Если вы хотите использовать именные виртуальные хосты (name-based
# virtual hosts), вам необходимо определить для них как минимум один
# адрес IP (и номер порта).
#
#NameVirtualHost *:*


#
# Определяем виртуальный хост по умолчанию, который будет использоваться,
# если запрос пришел на несуществующий домен. Т.к. директории
# /home/non-existent-host нет, попытка обратиться к хосту, который
# не существует, приведет к 404-й ошибке. Вы можете указать 
# дополнительные директивы внутри следующего блока VirtualHost.
#
<VirtualHost _default_:*>
    ServerName non-existent-host
    DocumentRoot /home/non-existent-host
</VirtualHost>


#
# Если вы вручную хотите создать виртуальный хост со специфическими 
# настройками, то сделайте это сразу же после данного комментария. 
# Не помещайте "рукодельные" хосты в конец файла, иначе они не будут 
# доступны!
#
# В контейнер VirtualHost может включаться почти любая директива Apache.
# Пример использования директивы VirtualHost:
#
#<VirtualHost ip.address.of.host.some_domain.com>
#    ServerAdmin webmaster@host.some_domain.com
#    DocumentRoot /www/docs/host.some_domain.com
#    ServerName host.some_domain.com
#    ErrorLog logs/host.some_domain.com-error_log
#    CustomLog logs/host.some_domain.com-access_log common
#</VirtualHost>
#
#<VirtualHost _default_:*>
#</VirtualHost>



#
# Однако можно поступить проще. Для того, чтобы добавить новый виртуальный 
# хост со стандартными настройками, вам достаточно лишь создать структуру 
# его каталогов в директории /home. Сервер Apache автоматически "увидит" 
# изменения при следующем запуске. Вносить правки в httpd.conf не требуется.
#

#
# Механизм шаблонов, встроенный в Денвер, позволяет автоматически создавать
# блоки виртуальных хостов по заданным правилам. Каждый шаблон указывает
# правило соответствия имен директорий документов "своим" доменам. Например:
# "просканировать /home и для всех директорий, которые там встретятся, 
# создать одноименные виртуальные хосты". Вы можете также создать несколько 
# шаблонов и задать, таким образом, несколько правил соответствий.
#

#
# Далее идет шаблон, по которому в будут автоматически создаваться 
# все виртуальные хосты в системе (из директории /home). Помните,что любые 
# изменения, внесенные в этот шаблон, отражаются сразу для всех доменов, 
# но только при следующем запуске комплекса.
#
# ВНИМАНИЕ!
# Текст шаблона должен идти в файле в виде комментария Apache (т.е. каждая
# строка шаблона обязана предваряться символом #). С точки зрения Apache 
# шаблон - это обыкновенный комментарий, он анализируется лишь системой
# поддержки виртуальных хостов "Джентельменского набора".
#
# Вместо именов доменов используются специальные метаобозначения, по наличию 
# которых и распознается начало блока-шаблона. Если шаблон не будет содержать
# ни одного метасимвола, то он просто не будет воспринят, как шаблон.
#
# Если перед тэгом VirtualHost имеются непустые строки со знаком комментария
# (например, Listen; см. ниже), то считается, что они также входят в шаблон.
#

#
# Определяем один-единственный шаблон блока <VirtualHost>, который
# будет обслуживать сразу все хосты, перечисленные в директории /home. 
# Обязательно наличие специальных метасимволов в тексте шаблона,
# в противном случае он будет трактоваться, как обычный комментарий.
#
# Вы можете задать здесь и другие шаблоны хостов, если хотите.
# Система анализирует все блоки, а не только первый.
#

#
# Для каждого хоста в /home можно задать дополнительные настройки, которые
# будут учтены в шаблоне (см. ниже). Для этого необходимо создать в директории,
# соответствующей хосту, файл .htaccess, и указать в нем следующие директивы:
#
# #dnwr_host  ДополнительноеИмяХоста
# #dnwr_port  ПортЭтогоХоста
# #dnwr_ip    IpАдресЭтогоХоста
#
# ВНИМАНИЕ: не потеряйте ведущий символ "#" перед каждой директивой! В 
# противном случае Apache сочтет строки за свои команды, и выдаст сообщения
# об ошибках. 
#
# Также см. ниже детальное описание того, как работают dnwr-директивы.
#

##
## НАЧАЛО ШАБЛОНА ВИРТУАЛЬНОГО ХОСТА.
##
## Если вы хотите по умолчанию запускать Apache на порту, отличном от 80,
## измените номер порта в следующей далее директиве.
##
#Listen $&{ip:-127.0.0.1}:$&{port:-80}
#NameVirtualHost $&{ip:-*}:*
#<VirtualHost $&{ip:-*}:$&{port:-*}>
#  #
#  # Формат шаблона директории документов:
#  #   /выр1/выр2/.../вырN
#  # где вырI - регулярное выражение в формате PCRE. Каждое 
#  # выражение сравнивается с частью пути между двумя "/" 
#  # независимо, поэтому допустимо применять $ и ^ для 
#  # привязки к концу и началу имени директории соответственно.
#
#  #
#  # Вы можете использовать несколько директив DocumentRootMatch,
#  # чтобы задать соответствие этого же шаблона и различным директориям.
#  #
#  # Порядок следования директив DocumentRootMatch ВАЖЕН: в случае,
#  # если несколько разных директив "перекрываются" (т.е. совпадают
#  # с одним и тем же путем), используется только первое совпадение.
#  #
#  # Перечислять директивы DocumentRootMatch следует в порядке 
#  # приоритета: шаблоны, идущие первыми, совпадают с большей долей
#  # вероятности, чем идущие последними. То есть, "более частные"
#  # шаблоны следует помещать ВЫШЕ более общих. Ниже так и сделано.
#  #
#  # Далее идут различные схемы именования директорий.
#  # -------------------------------------------------
#  #
#  # Иногда домены второго уровня не нужны, и сайты хранятся в
#  # директории public_html. Примеры:
#  #   /home/somehost/public_html          -> http://somehost
#  #   /home/somehost/public_html/cgi-bin/ -> http://somehost/cgi-bin/
#  #
#  DocumentRootMatch "/home/(?!cgi-)(.*)/public_html^1"
# 
#  #  
#  # Схема иненования хостера Net.Ru.
#  #   /home/somehost/html     -> http://somehost
#  #   /home/somehost/html/*/  -> http://*.somehost
#  DocumentRootMatch "/home/(?!cgi-)(.*)^1/html/(.*)"
#
#  #
#  # Схема именования хостера Host-ing.Ru.
#  #   /home/somehost/domains/*   -> http://*.somehost
#  #   /home/somehost/cgi-bin/    -> http://*.somehost/cgi-bin/
#  #
#  DocumentRootMatch "/home/(?!cgi-)(.*)^1/domains/(?!cgi$|cgi-)(.*)"
#
#  # 
#  # На некоторых хостингах имена директорий начинаются с тильды.
#  # Примеры для данного шаблона:
#  #   /var/www/html/~somehost/*    -> http://*.somehost
#  #   /var/www/html/~somehost/cgi  -> http://*.somehost/cgi/
#  # 
#  DocumentRootMatch "/var/www/html/(?!cgi-)~(.*)^1/(?!cgi$|cgi-)(.*)"
#
#  #
#  # И наконец, самый общий шаблон. Применяется, если ни один другой
#  # шаблон не совпал. Первое совпадение (участок в скобках) в каждом 
#  # имени директории будет рассматриваться как доменное имя. Примеры:
#  #   /home/somehost/*       -> http://*.somehost
#  #   /home/somehost/cgi/    -> http://*.somehost/cgi/
#  #
#  DocumentRootMatch "/home/(?!cgi-)(.*)^1/(?!cgi$|cgi-)(.*)"
#
#  #
#  # Примечание: в PCRE фраза "(?!cgi-)" означает "с этого места НЕ
#  # начинается подстрока 'cgi-'". Метасимвол ^1 указывает, что данный
#  # фрагмент пути (левее нее) должен быть записан в буфер для дальнейшего
#  # извлечения (см. ниже описание метасимволов для подстановки).
#  #
#
#  #
#  # После того, как один из шаблонов директории документов совпал с
#  # некоторой директорией, в шаблоне можно использовать следующие 
#  # подстановочные знаки:
#  # 1. $&         - полный путь к директории документов;
#  # 2. $^N        - путь, помеченный в шаблоне как ^N. Например, для шаблона
#  #                 "/home/(.*)^2/(.*)", примененного к "/home/abc/def",
#  #                 значение $^2 будет равно /home/abc.
#  #                 Вообще, $ в начале свидетельствует о работе с ПУТЯМИ.
#  # 3. %&         - полное доменное имя;
#  # 4. %^N        - N-й компонент доменного имени.
#  #                 Вообще, % говорит о работе с ДОМЕННЫМИ ИМЕНАМИ.
#  # 5. $&стр      - подстановка значения директивы "dnwr_стр" из файла
#  #     или         .htaccess, находящегося в директории документов
#  #    %&стр        (чтобы не возникало конфликтов с Apache, эта директива
#  #                 должна быть закомментирована). Директива наследуется: 
#  #                 если в родительских каталогах есть .htaccess, в котором 
#  #                 она опрелена, то значение по умолчанию берется оттуда. 
#  #                 Текст "стр" не должен состоять из одних только цифр.
#  # 6. $^{N:-D}   - в случае, если $^N или $&стр (соответственно) пусты,
#  #     или         вместо них подставляется значение по умолчанию D.
#  #    $&{стр:-D}   Разделитель ":-" является служебным и в подстановке
#  #                 не участвует.
#  #
#  # В выражении, содержащем метасимволы, можно также применять 
#  # специальные команды по следующим правилам (приведены примеры
#  # того, что происходит с текстом ПОСЛЕ подстановки метасимволов):
#  # 
#  # Работа с доменными именами:
#  #   "abc.def.ru/../gh"    -> "gh.def.ru"      (отсечение слева)
#  #   "www.def.ru/-www"     -> "def.ru"         (отчечение "www" слева)
#  #   "www.def.ru/abc"      -> "abc.www.def.ru" (присоединение "abc")
#  #   "www.def.ru/-www/abc" -> "abc.def.ru"     (отсечение "www" и добавление "abc")
#  #   "abc.def.ru/-www"     -> "abc.def.ru"     (не изменилось)
#  #
#  # Работа с файловыми путями:
#  #   "/abc/def/../a"       -> "/abc/a"
#  #   "/abc/def/./a"        -> "/abc/def/a"
#  #   "/abc/def/-def/a"     -> "/abc/a"         (здесь "def" - любое PCRE-выражение)
#  #   "/abc/d/-def/a"        > "/abc/d/a"       ("d" не совпало с "def")
#  #
#
#  #
#  # Директория документов виртуального хоста.
#  # $& означает "весь совпавший путь".
#  #
#  DocumentRoot "$&"  
#
#  #
#  # Это имя нигде реально не фигурирует из-за настройки
#  # UseCanonicalName Off (см. выше).
#  # %& означает "все совпавшее доменное имя".
#  #
#  ServerName "%&/-www"
#     
#  #
#  # Указывает на то, что данный блок совпадает с именем виртуального 
#  # хоста (без префикса "www" или с ним). Если Вы хотите создавать
#  # специфичные виртуальные хосты (например, для того, чтобы
#  # задать для них отдельные лог-файлы, а не общие, как сделано
#  # сейчас), добавляйте хосты перед данным блоком, но не после! 
#  # Иначе они не будут работать, все "съест" текущий хост.
#  #
#  # Подходят доменные имена как с префиксом www, так и без него.
#  #
#  ServerAlias "%&/-www" "%&/-www/www" $&{host:-}
#
#  $&{directives:-}
#
#  #
#  # Определяет CGI-директорию для данного виртуального хоста,
#  # доступную как http://хост/cgi/. Если вы хотите, чтобы
#  # директория /cgi-bin/ была общей для всех виртуальных хостов
#  # закомментируйте следующую строку:
#  #
#  # ScriptAlias /cgi-bin/ "$^1/cgi-bin/"
#  #
#  # $^1 означает "часть пути, помеченная в шаблоне как ^1".
#  ScriptAlias /cgi/ "$^1/cgi/"
#  ScriptAlias /cgi-bin/ "$^1/cgi-bin/"
#
#  #
#  # Отдельный файл сообщений об ошибках для каждого хоста.
#  # Если хотите сделать один файл для всех хостов, укажите
#  # здесь нужный путь.
#  #
#  ErrorLog "$^1/error.log"
#</VirtualHost>
##
## КОНЕЦ ШАБЛОНА.
##


#
# Следующая директива необходима для того, чтобы подключить файл со всеми
# виртуальными хостами, доступными в системе. Этот файл модифицируется 
# автоматически при запуске, поэтому любые внесенные в него изменения
# не сохраняются. Если вы хотите повлиять на содержимое файла, то измените
# шаблон виртуального хоста, идущий выше.
#
Include conf/vhosts.conf


#
# Конец файла
#

