我目前正在运营一个具有“多商店”功能的网站,这实际上意味着单个网站处理多个域。在本例中,我有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
?
编辑:为清晰起见,最后一段的结尾已重新措辞
答案1
这些规则可以完成这个任务:
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]