在我的局域网上,我在DNS服务器中设置了几个“虚假”TLD,目的是将它们用于基于Apache名称的虚拟主机.我想在Ubuntu 10.04 LAMP服务器上将它与mass-virtual-hosting(即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,但始终选择顶部vhost而不是底部vhost,它们更紧密地匹配.
我的印象是,在默认为给定IP的顶级虚拟主机之前,Apache会首先尝试匹配ServerName.我究竟做错了什么?或者这是不可能的,我必须为每个TLD使用另一个IP吗?
apachectl -S输出(修剪):
10.10.0.205:* is a NameVirtualHost default server *.test port * namevhost *.test port * namevhost *.dev
使用ServerAlias,而不仅仅是ServerName:
原文链接:https://www.f2er.com/ubuntu/348738.htmlServerName somename.dev
ServerAlias * .dev