Linux
CNAME 重定向對於兩個域的行為不同
我有兩個域 - Oliverhaslam.com 和 ojhaslam.co.uk。
兩者都在同一家公司註冊,並且都有指向我伺服器IP地址的A記錄。
兩者都有 CNAME 記錄,將 www 地址指向等效的非 www 地址(www.oliverhaslam.com 到 Oliverhaslam.com 等)
問題是這樣的:當 www.oliverhaslam.com 重定向到 Oliverhaslam.com 並在瀏覽器的地址欄中顯示時,www.ojhaslam.co.uk 指向正確的 IP,而不是 ojhaslam.co.uk。
將 www.ojhaslam.co.uk 的伺服器別名添加到我的虛擬主機可以使內容在瀏覽器中正確顯示,但地址欄沒有反映到 ojhaslam.co.uk 的重定向。正如我所說,這不是我在 Oliverhaslam.com 上看到的行為,我擔心 SEO 等會將 www.ojhaslam.co.uk 和 ojhaslam.co.uk 視為兩個獨立的網站。
這是我的 httpd.conf 文件:
<VirtualHost *:80> ServerName oliverhaslam.com ServerAlias oliverhaslam.com DocumentRoot /var/www/ </VirtualHost> <VirtualHost *:80> ServerName ojhaslam.co.uk ServerAlias ojhaslam.co.uk DocumentRoot /var/www/photo365/ </VirtualHost>
任何想法為什麼有兩個域,在註冊商處配置相同並在 httpd.conf 中配置相同的行為不同?
謝謝。
編輯:
我現在通過將上面的程式碼更改為:
<VirtualHost *:80> ServerName oliverhaslam.com ServerAlias oliverhaslam.com DocumentRoot /var/www/ </VirtualHost> <VirtualHost *:80> ServerName ojhaslam.co.uk ServerAlias ojhaslam.co.uk #RedirectMatch permanent /(.*) http://ojhaslam.co.uk/$1 DocumentRoot /var/www/photo365/ </VirtualHost> <VirtualHost *:80> ServerName www.ojhaslam.co.uk ServerAlias www.ojhaslam.co.uk RedirectMatch permanent /(.*) http://ojhaslam.co.uk/$1 DocumentRoot /var/www/photo365/ </VirtualHost>
但問題仍然存在 - 為什麼它適用於一個域,而不適用於另一個域?
CNAME 記錄的目的不是重定向,而是模仿另一條記錄。
您需要告訴客戶端重定向。這可以通過以下任一方式實現:
1)為名稱創建新的虛擬主機
www.
,並使用Redirect
指令,如下所示:<VirtualHost *:80> ServerName www.ojhaslam.co.uk ... Redirect ojhaslam.co.uk </VirtualHost>
2)使用
mod_rewrite
:<VirtualHost *:80> ServerName ojhaslam.co.uk ServerAlias www.ojhaslam.co.uk ... Options +FollowSymlinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^ http://%1%{REQUEST_URI} [L,R=301] </VirtualHost>