因此我为 www.company.com 设置了一个虚拟服务器:
<VirtualHost *:80>
ServerName www.company.com
</VirtualHost>
然后我想将 *.company.com 指向另一个站点。我该怎么做?我可以想到 www. 和 inside. 指向特定的虚拟主机,而“其余”指向通用虚拟主机。
Apache 版本是 2.2.4
答案1
您的答案中的解决方案:
<VirtualHost *:80>
ServerName www.company.com
ServerAlias company.com
DocumentRoot /path1
</VirtualHost>
<VirtualHost *:80>
ServerName *.company.com
DocumentRoot /path2
</VirtualHost>
礼貌地使用通配符“捕获所有”域名:
<VirtualHost *:80>
ServerName subdomain1.company.com
DocumentRoot /path/to/subdomain1
</VirtualHost>
<VirtualHost *:80>
ServerName subdomain2.company.com
DocumentRoot /path/to/subdomain2
</VirtualHost>
<VirtualHost *:80>
ServerName company.com
ServerAlias *.company.com
DocumentRoot /path/to/primary/domain+catchall
</VirtualHost>
请注意,顺序是有意义的,catchall 域必须是最后一个。这特别有用,可以避免客户端 URL 中的错误输入引发“不存在的主机”错误,让您公司的客户认为您是一个糟糕的服务器管理员(而不是他是一个糟糕的打字员 :P)。