Apache httpd:别名由虚拟主机继承吗?

Apache httpd:别名由虚拟主机继承吗?

当默认服务器包含

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 的指令。

相关内容