在 Apache 2 中拒绝对其他域的请求

Ric*_*kye 4 domain virtualhost hosts-file apache-2.4

假设我在由 Apache 提供支持的服务器上运行 xy.com。它是默认的虚拟主机。
现在有人重写了他的主机文件以将 yz.com 重定向到我服务器的 IP。由于我的服务器对 yz.com 一无所知,它只是将其解析为默认的虚拟主机。因此,在这种情况下,yz.com/hello 将解析为 xy.com/hello,并尝试为我网站的 /hello 页面提供服务。有没有办法(也许使用 RewriteRule 或其他东西)来禁用从我的服务器请求 yz.com 的请求?例如,给他们一个 403 或任何东西,除非它请求 xy.com,否则不要让任何东西通过 Apache。
我在 Ubuntu LTS 上使用最新的 Apache 版本。

Mik*_*eyB 5

如果您不希望 xy.com 是默认值,为什么它是默认值?

添加一个新的默认虚拟主机,它只返回 404。

然后将 xy.com 添加为虚拟主机条目。它只会在被要求时使用。


BMD*_*Dan 5

为什么不简单地将默认 VHost 更改为拒绝 VHost?

<VirtualHost *:80>
    ServerName lol.no
    DocumentRoot /var/empty/httpd
    <Location />
        Deny from all
        Allow from none
    </Location>
</VirtualHost>

<VirtualHost *:80>
    ...your VHost goes here...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)