Apache-2.2

CNAME 指向同一個 DocumentRoot 是否需要 VirtualHost 條目?

  • April 29, 2014

www.example.com。1800 在 CNAME example.com 中。

其他.example.com。1800 在 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>

您的第一種方法不可靠(僅當它是預設的 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>

引用自:https://serverfault.com/questions/591928