在我们的LAN上,我已经在DNS服务器中设置了几个“假” TLD,目的是将它们用于基于Apache名称的虚拟主机。我想将其与Ubuntu 10.04 LAMP服务器上的大规模虚拟主机(即VirtualDocumentRoot)结合使用。
但是,我无法选择正确的虚拟主机!
以下是Apache配置的摘要:
NameVirtualHost 10.10.0.205
<VirtualHost 10.10.0.205>
ServerName *.test
VirtualDocumentRoot /var/www/%-3.0.%-2/test/%1/
CustomLog /var/log/apache2/access.log vhost_combined
</VirtualHost>
<VirtualHost 10.10.0.205>
ServerName *.dev
VirtualDocumentRoot /var/www/%-3.0.%-2/dev/%1/
CustomLog /var/log/apache2/access.log vhost_combined
</VirtualHost>
诸如www.domain.com.dev之类的主机名可以正确解析为10.10.0.205,但是始终选择匹配程度更高的顶部虚拟主机,而不是底部虚拟主机。
我给人的印象是,Apache将首先尝试匹配ServerName,然后再将其默认为给定IP的顶级虚拟主机。我究竟做错了什么?还是这不可能?我必须为每个TLD使用另一个IP吗?
apachectl -S输出(已整理):
10.10.0.205:* is a NameVirtualHost
default server *.test
port * namevhost *.test
port * namevhost *.dev