我想要两个虚拟主机:
1)其中一个
ServerName mydomain.com
ServerAlias *.mydomain.com
2)其他
ServerName beta.mydomain.com
ServerAlias *.beta.mydomain.com
(or if it's easier, it could be beta.*.mydomain.com)
我该怎么做?
我尝试先加载一个,然后再加载另一个(反之亦然),但没有效果。
谢谢!
答案1
我怀疑你错过了NameVirtualHost
指令:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName beta.example.com
ServerAlias *.beta.example.com
DocumentRoot /var/www/b
</VirtualHost>
<VirtualHost *:80>
ServerName example.com
ServerAlias *.example.com
DocumentRoot /var/www/a
</VirtualHost>
该NameVirtualHost
指令告诉 apache,与VirtualHost
给定的 address:port 匹配的 s 应该基于名称(使用客户端的Host:
标头),而不是仅基于 address:port。有了这个,beta 虚拟主机有为第一个,因为 apache 将使用第一个匹配的 VirtualHost 指令,并且 *.example.com 将匹配 beta.example.com。