Apache virtualhost指令:只有ServerName,没有别的

时间:2013-05-02 10:50:22

标签: apache virtualhost

如果我创建了一个vhost指令,它将始终捕获此IP地址上的所有请求。即使我设置了ServerName,所有其他请求也将被重定向到此条目的DocumentRoot。 如何删除除此特定域以外的所有请求? E.g:

VirtualHost 46.108.122.78:80
    ServerName mysite.com

(我知道我可以指定没有ServerName的第二个指令,并重定向到例如空目录。但是,我想明确删除这些请求。)

1 个答案:

答案 0 :(得分:1)

当没有其他servername / serveralias匹配时,给定ip:port的第一个基于名称的虚拟主机是默认的。

# not necessary in 2.4
NameVirtualHost 46.108.122.78:80

<VirtualHost 46.108.122.78:80>
ServerName xxx.example.com
# any unmatched hostname on goes here
RewriteEngine on
RewriteRule .* - [F]
</VirtualHost>
<VirtualHost 46.108.122.78:80>
ServerName foo.example.com
DocumentRoot ...
</VirtualHost>