Apache-2.2
CNAME 和虛擬主機問題
我正在使用 Apache,並且我有一個 CNAME DNS 記錄
sub2.sub1.domain1.com 指向 sub1.domain1.com
我有一個 A DNS 記錄
sub1.domain1.com 指向IP。
然後在我的 httpd.conf 文件中,我有:
<VirtualHost *:80> ServerName www.domain1.com DocumentRoot /domain1/www </VirtualHost> <VirtualHost *:80> ServerName sub1.domain.com DocumentRoot /domain1/sub1/www </VirtualHost>
但是我似乎遺漏了一些東西,因為當您訪問 sub2.sub1.domain1.com 時,它會向您顯示 domain1.com 的頁面。當您訪問 sub1.domain1.com 時,它會顯示 sub1 的正確頁面。
雖然您有 CNAME 記錄將 sub2.sub1.domain1.com 指向正確的伺服器,但 apache 伺服器可能服務於多個網站。
當一個 http 請求進來時,apache 根據ServerName檢查 URL以確定要提供哪個網站。如果有任何其他名稱指向同一網站,請將它們放在ServerAlias中。
在您的 httpd.conf 中,您必須為 sub2.sub1.domain1.com添加ServerAlias
<VirtualHost *:80> ServerName sub1.domain.com ServerAlias sub2.sub1.domain1.com DocumentRoot /domain1/sub1/www </VirtualHost>
此外,httpd.conf 中的第一個VirtualHost聲明用作預設值。當一個 http 請求進來並且不匹配任何ServerName和ServerAlias時,預設站點將被發送出去。