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

比方说,我有xy.com运行在由Apache支持的服务器上。 这是默认的虚拟主机
现在有人重写了他的主机文件,将yz.comredirect到我的服务器的IP。 由于我的服务器不知道yz.com的一些事情,只是将它parsing为默认的虚拟主机。 所以在这种情况下,yz.com/hello得到解决xy.com/hello,它会尝试服务我的网站的/ hello页面。 有没有办法(也许用一个RewriteRule或者什么)来禁用从我的服务器请求yz.com的请求? 给他们一个403例如任何东西,只是不要让任何东西通过Apache,除非它是请求xy.com。
我在Ubuntu LTS上使用最新的Apache版本。

为什么xy.com是默认的,如果你不想要它?

添加一个新的默认虚拟主机,不做任何事情,但返回一个404。

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

为什么不简单地将默认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> 

RewriteRule会是这样的:

 RewriteCond %{HTTP_HOST} !^your\.site\.com$ [NC] RewriteRule .* - [F] 

其他的解决scheme是添加一个新的默认虚拟主机,以403响应任何请求。
只有匹配的请求才会转到您的真实虚拟主机上。