В какой последовательности апач обрабатывет свои конфигурационные секции.
Начнём без долгих прелюдий. Источник - Configuration Sections из документации апача и его исходники, т.к. в документации не отражены разные тонкости.
Прикаждом запросе конфигурационные секции апача применяются так: сначала сливаются (соединяются, merge)
директивы из конфигурации сервера (httpd.conf) и директивы из конфигурации виртуального хоста (в соответствующеё секции <VirtualHost>), и объединённая конфигурация (merged configuration) исполняется. Затем соединяются директивы из конфигурационных секций типа Directory, Files, файлов .htaccess, и полученная объединённая конфигурация исполняется.
Допустим, что апач обрабатывает запрос http://servername/a/b/index.html, в результате которого будет выдан файл
/www/servername/a/b/index.html. Вот итоговая последовательность применения конфигурационных секций:
Соединяются конфигурации
- httpd.conf
-
<VirtualHost></VirtualHost>
Выполняется соединённая конфигурация
Соединяются конфигурации
<Directory /www/servername/>...</Directory><VirtualHost><Directory /www/servername/>...</Directory></VirtualHost>/www/servername/.htaccess
<Directory /www/servername/a/>...</Directory><VirtualHost><Directory /www/servername/a/>...</Directory></VirtualHost>/www/servername/a/.htaccess
<Directory /www/servername/a/b/>...</Directory><VirtualHost><Directory /www/servername/a/b/>...</Directory></VirtualHost>/www/servername/a/b/.htaccess
<Directory ~ | DirectoryMatch ^/www/servername/>...</DirectoryMatch><VirtualHost><Directory ~ | DirectoryMatch ^/www/servername/>...</DirectoryMatch></VirtualHost><Directory ~ | DirectoryMatch ^/www/servername/a/>...</DirectoryMatch><VirtualHost><Directory ~ | DirectoryMatch ^/www/servername/a/>...</DirectoryMatch></VirtualHost><Directory ~ | DirectoryMatch ^/www/servername/a/b/>...</DirectoryMatch><VirtualHost><Directory ~ | DirectoryMatch ^/www/servername/a/b/>...</DirectoryMatch></VirtualHost><Files | Files ~ index.html>...</Files>в порядке как они записаны в конфиге<VirtualHost><Files | Files ~ index.html>...</Files></VirtualHost>в порядке как они записаны в конфиге<Location | Location ~ >...</Location>в порядке как они записаны в конфиге<VirtualHost><Location | Location ~ >...</Location></VirtualHost>в порядке как они записаны в конфиге
Выполняется соединённая конфигурация

Комментарии