Apache-2.2

將域重定向到管理多個域的新伺服器

  • May 19, 2011

我想將一個域 (old.com) 轉發到位於另一台伺服器上的另一個域 (new.com)。問題是,這個新伺服器已經託管了 2 個域(new.com 和 other.com),並且重定向實際上重定向到這個新伺服器上的另一個域(other.com)。

在 old.com 的 DNS 上,我創建了一條從“www”到“new.com”的 CNAME 記錄。

我還需要做什麼才能使 old.com 重定向到 new.com 而不是 other.com?

乾杯,

尼古拉斯。

您可以將 ServerAlias 添加到 new.com vhost 文件:http ://httpd.apache.org/docs/2.2/mod/core.html#serveralias

我假設 other.com 是伺服器選擇的預設域。

編輯

您可以查看您的 apache 服務的虛擬主機列表,以及預設使用的虛擬主機列表

apachectl -S

如果預設值為“other.com”,則任何確定要發送到由您的 CNAME 指示的伺服器且未在 new.com 虛擬主機中正確配置的請求,都將定向到預設虛擬主機。

編輯 2添加了重寫程式碼。

一旦您確定 ServerAlias 設置正確並且來自“www.old.com”的請求正在為來自“new.com”的文件提供服務,您就可以確保來自 www.old.com 的所有流量都正確獲取 301-使用 vhost 文件(或 .htaccess)中的以下程式碼(假設您啟用了 mod_rewrite)重定向(簡單地說:瀏覽器中的 URL 更改,搜尋引擎知道這是永久性更改):

<IfModule mod_rewrite.c>                                                                                                                                                     
RewriteEngine On                                                                                                                                                             

# START DOMAIN REDIRECTS
RewriteCond %{HTTP_HOST} ^www\.old\.com$ [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) http://new.com/$1 [R=301,L]
# END DOMAIN REDIRECTS
</IfModule>  

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