apache 中的通配符子域名和子子域名配置

apache 中的通配符子域名和子子域名配置

我想要两个虚拟主机:

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。

相关内容