Apache-2.2

虛擬主機是否應該始終使用裸域作為 ServerName?

  • April 7, 2017

為 設置虛擬主機example.com並希望www.example.com用作我的首選域時,使用以下標準做法是否:

<VirtualHost *:80>
   ServerName example.com
   ServerAlias www.example.com
   # ...
</VirtualHost>

…其中我的首選域是別名?

如果我要切換ServerNameand的值有關係ServerAlias嗎?據我所知,它們是可以互換的(您可以指定多個伺服器別名除外)。

據我所知,切換 和 的值ServerName通常ServerAlias不會影響您網站的執行方式。

如手冊 中所述,僅當 UseCanonicalName設置為非預設值時,您將看到在創建自引用重定向 URL 時使用 ServerName 的值(而不是用於訪問您的站點的任何 URL)。

例如,如果使用者鍵入 ServerAlias 主機名和作為目錄的 URL(例如http://www.example.com/splat,沒有尾部斜杠),您將看到自引用重定向 URL,那麼 Apache httpd 會將它們重定向到http://example.com/splat/.

否則,您將只能apachectl -S在錯誤消息的輸出和錯誤消息中看到 ServerName 指令的值,因為友好錯誤消息的標準模板include/bottom.html包括 用於自定義它們的 ServerName :

標題:404 未找到

未找到

在此伺服器上找不到請求的 URL /some/page。


Apache/2.2.15 (CentOS) 伺服器在example.com埠 80


有一些有效的技術參數可供使用www.example.com,您可能希望這樣做:

<VirtualHost *:80>
   ServerName example.com
   Redirect permanent / www.example.com 
</VirtualHost>
<VirtualHost *:80>
   ServerName www.example.com
   ServerAlias www.example.org www.example.net 
   # ...
</VirtualHost>

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