Apache httpd: псевдоним наследуется виртуальным хостом?

Apache httpd: псевдоним наследуется виртуальным хостом?

Когда сервер по умолчанию содержит

Alias /bla /srv/www/blub

тогда все VirtualHosts также смогут получить доступ /bla.

Должен сказать, я этого не ожидал. По моему скромному мнению, виртуальный сервер должен иметь свою собственную отдельную конфигурацию.

Это баг или фича? Можно ли отключить это поведение?

решение1

Настройки не ограничиваются конкретным VirtualHost, а размещаются в основных файлах конфигурации сервера (т.е.httpd.conf или в загруженных фрагментах конфигурацииIncludeи/илиIncludeOptionalдирективы) действительны для всего сервера, включая все VirtualHosts.

Это так и задумано:

Объем:Директивы, размещенные в основных файлах конфигурации, применяются ко всему серверу. Если вы хотите изменить конфигурацию только для части сервера, вы можете ограничить область действия директив, поместив их в разделы <Directory>, <DirectoryMatch>, <Files>, <FilesMatch>, <Location>и <LocationMatch>. Эти разделы ограничивают применение директив, которые они заключают, определенными расположениями файловой системы или URL-адресами. Они также могут быть вложенными, что позволяет выполнять очень тонкую настройку.

httpd имеет возможность обслуживать много разных веб-сайтов одновременно. Это называется виртуальным хостингом. Директивы также можно ограничить, поместив их в <VirtualHost>разделы, так что они будут применяться только к запросам для определенного веб-сайта.

Не помещайте в основной файл httpd.conf директивы, которые вы не хотите применять ко всем VirtualHosts.

Связанный контент