Каждый контейнер Directory начинается с инструкции Directory и заканчивается тегом </Directory>. Каждый из контейнеров содержит операторы настройки, которые относятся только к одному из каталогов. Назначение инструкций в данных контейнерах описано далее в разделе «Безопасность веб-сервера». На данном этапе достаточно понять, что контейнеры в файле httpd.conf применяются с целью ограничения области действия различных инструкций настройки.
Инструкции Alias и ScriptAlias выполняют отображение URL-пути в имя каталога на сервере. Так, файл настройки в Solaris содержит следующие три инструкции:
Alias /icons/ "/var/apache/icons/" Alias /manuals/ "/usr/apache/htdocs/manual/" ScriptAlias /cgi-bin/ "/var/apache/cgi-bin/"
Первая строка отображает URL-путь /icons/ в каталог /var/apache/icons/. Таким образом, запрос www.wrotethebook.com/icons/ является запросом www.wrotethebook.com/var/apache/icons/. Вторая инструкция отображает URL-путь /manuals/ в www.wrotethebook.com/usr/apache/htdocs/manual/.
Инструкций Alias, устанавливающих подобные отображения, может быть сколько угодно, но инструкция ScriptAlias может быть только одна. ScriptAlias действует точно так же, как инструкция Alias, с той разницей, что конечный каталог содержит исполняемые CGI-программы. Следовательно, httpd разрешает исполнение файлов из данного каталога. Инструкция ScriptAlias особенно важна потому, что позволяет хранить исполняемые веб-сценарии в каталоге вне иерархии DocumentRoot. Сценарии CGI - без преувеличений наиболее уязвимое место вашего сервера; хранение этих сценариев в отдельном каталоге позволяет более жестко разграничивать доступ к ним.
Настройки для Solaris содержат контейнеры каталогов /var/apache/icons и /var/apache/cgi-bin, но не каталога /usr/apache/htdocs/manual. Упоминание каталога в httpd.conf вовсе не требует создания контейнера Directory для этого каталога. Контейнеры /var/apache/icons и /var/apache/cgi-bin выглядят следующим образом:
directory "/var/apache/icons"> Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all </Directory> <0irectory "/var/apache/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory>
Контейнеры содержат операторы AllowOverride, Options, Order и Allow, которые относятся к безопасности. Большинство инструкций в контейнерах файлов, документов и каталогов явно или неявно связаны с вопросами безопасности. Все инструкции из приведенных выше контейнеров рассмотрены далее в этой главе в разделе «Безопасность веб-сервера».