Apache 中的虚拟主机为 *.company.com,然后为 www.company.com 单独提供一个虚拟主机

Apache 中的虚拟主机为 *.company.com,然后为 www.company.com 单独提供一个虚拟主机

因此我为 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)。

相关内容