CNAME 是否需要 VirtualHost 条目指向相同的 DocumentRoot?

CNAME 是否需要 VirtualHost 条目指向相同的 DocumentRoot?

www.example.com。1800 IN CNAME example.com。

other.example.com.1800 IN CNAME example.com。

当所有条目指向完全相同的 DocumentRoot 时,Apache 中哪种方法是正确的?

下面的方法可行吗?

<VirtualHost *:80>
        DocumentRoot "/some/place/"
        ServerName example.com
</VirtualHost>

或者我应该为每个 CNAME 创建一个 VirtualHost 条目?

<VirtualHost *:80>
        DocumentRoot "/some/place/"
        ServerName example.com
</VirtualHost>

<VirtualHost *:80>
        DocumentRoot "/some/place/"
        ServerName www.example.com
</VirtualHost>

<VirtualHost *:80>
        DocumentRoot "/some/place/"
        ServerName other.example.com
</VirtualHost>

答案1

第一种方法不可靠(仅当它是默认 VirtualHost 时)。
第二种方法可以工作,但会重复配置 - 通常这是您要避免的。

您可以使用ServerAliashttp://httpd.apache.org/docs/2.2/mod/core.html#serveralias) 反而:

<VirtualHost *:80>
        DocumentRoot "/some/place/"
        ServerName example.com
        ServerAlias www.example.com other.example.com
</VirtualHost>

相关内容