当默认服务器包含
Alias /bla /srv/www/blub
那么所有VirtualHosts也可以访问/bla
。
我必须说我没有预料到这一点。在我看来,虚拟服务器应该有自己独立的配置。
这是错误还是功能?我可以关闭此行为吗?
答案1
设置不仅限于特定的 VirtualHost,而是放置在主服务器配置文件中(即httpd.conf
或者在加载的配置片段中Include
和/或IncludeOptional
指令)对整个服务器有效,包括任何和所有的虚拟主机。
范围:主配置文件中的指令适用于整个服务器。如果您只想更改服务器的一部分配置,可以将指令放在
<Directory>
、<DirectoryMatch>, <Files>, <FilesMatch>, <Location>
和<LocationMatch>
部分中以限定范围。这些部分将其包含的指令的应用限制在特定的文件系统位置或 URL 中。它们也可以嵌套,从而实现非常细粒度的配置。
httpd 能够同时为许多不同的网站提供服务。这称为虚拟主机。还可以通过将指令放在
<VirtualHost>
部分内来限制指令的范围,以便它们仅适用于特定网站的请求。
请不要在主 httpd.conf 中放置您不想应用于所有 VirtualHosts 的指令。