Apache-2.2
具有多個域的 301 重定向
我目前正在執行一個具有“多商店”功能的網站,這實際上意味著單個站點可以處理多個域。在這種情況下,我有
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/blog
到blog.domain-a.com
. 僅使用.htaccess,是否可以domain-a.com/blog
重定向到blog.domain-a.com
和domain-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]
- 將其放在網站根文件夾中的**.htaccess中。**如果放置在其他地方,則需要進行一些小的規則調整。
- 這些規則適用於您提供的域名(例如
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]