Mar*_*els 17 ubuntu lamp virtualhost apache-2.2
在我们的 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>
Run Code Online (Sandbox Code Playgroud)
主机名(例如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
Run Code Online (Sandbox Code Playgroud)
Mo.*_*Mo. 44
使用ServerAlias, 而不是ServerName单独使用:
ServerName somename.dev
ServerAlias *.dev