小编Har*_*vey的帖子

如何在 apache2 中禁用默认 VirtualHost?

在 apache2 中,任何带有未知主机的 http 请求都将被定向到第一个加载的 VirtualHost。有没有办法禁用这个功能?换句话说,我想要一个 Web 服务器,用户只能在其中访问显式命名的 VirtualHost 定义。在 ServerName 或 ServerAlias 行中未明确提及的任何其他主机名都应该被忽略。

这可能吗?

Listen 80
NameVirtualHost *

<VirtualHost _default_:*>
# Anything matching this host should be silently ignored.
</VirtualHost>

<VirtualHost *>
DocumentRoot /www/example1
ServerName www.example.com
</VirtualHost>

<VirtualHost *>
DocumentRoot /www/example2
ServerName www.example.org
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

更新:正如下面和其他地方所建议的,默默地忽略请求可能不是一个好主意,并且可能会破坏 HTTP 的 RFC。但是,由于虚拟主机旨在模拟具有多个单独的物理 HTTP 服务器,因此静默忽略方法对我来说似乎并不合理。它与基于 IP 的虚拟主机和防火墙关闭某些 IP 相同(可能不适用于所有客户端)。

virtualhost apache-2.2

11
推荐指数
2
解决办法
2万
查看次数

标签 统计

apache-2.2 ×1

virtualhost ×1