Apache-2.2

具有多個域的 301 重定向

  • July 18, 2011

我目前正在執行一個具有“多商店”功能的網站,這實際上意味著單個站點可以處理多個域。在這種情況下,我有domain-a.com並且domain-b.com都指向一家商店。目前,他們在 建立了一個部落格domain-a.com/blog,可以從兩個站點訪問。

最近,我們想為每個域設置一個單獨的部落格,因此我們將部落格從domain-a.com/blog移至blog.domain-a.com,並在 htaccess 文件中設置了 301 重定向,以將流量從新位置轉發domain-a.com/blog到新位置。問題是,這也會將進入的流量重定向domain-b.com/blogblog.domain-a.com. 僅使用.htaccess,是否可以domain-a.com/blog重定向到blog.domain-a.comdomain-b.com/blog重定向到完全不同的位置,比如說domain-b.com/newBlog

編輯:為清楚起見,最後一段的結尾已重新措辭

這些規則將完成這項工作:

RewriteEngine On
RewriteBase /

RewriteRule ^blog$ http://blog.%{HTTP_HOST}/ [NC,R=301,L]
RewriteRule ^blog/(.*)$ http://blog.%{HTTP_HOST}/$1 [NC,R=301,L]
  1. 將其放在網站根文件夾中的**.htaccess中。**如果放置在其他地方,則需要進行一些小的規則調整。
  2. 這些規則適用於您提供的域名(例如domain-x.com=> blog.domain-x.com)。如果域名不同(例如www.domain-x.com),那麼為了重定向到blog.domain-x.com這些規則必須更改。

更新: 根據更新的要求:

RewriteEngine On
RewriteBase /

# rule for domain-A.com/blog
RewriteCond %{HTTP_HOST} =domain-a.com [NC]
RewriteRule ^blog(/?|/(.*))$ http://blog.domain-a.com/$2 [NC,R=301,L]

# rule for domain-B.com/blog
RewriteCond %{HTTP_HOST} =domain-b.com [NC]
RewriteRule ^blog(/?|/(.*))$ http://domain-b.com/newBlog/$2 [NC,R=301,L]

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