我目前正在运行一个具有“多商店”function的网站,这基本上意味着单一网站处理多个域名。 在这种情况下,我有domain-a.com和domain-b.com都指向一个商店。 目前,他们在domain-a.com/blog有一个博客,可以从这两个站点访问。
最近,我们希望为每个域build立一个单独的博客,所以我们将博客从domain-a.com/blog移到blog.domain-a.com ,并在htaccess文件中设置301redirect来转发domain-a.com/blog到新的位置。 问题是,这也将domain-b.com/blog上的stream量redirect到blog.domain-a.com 。 只使用.htaccess,可以让domain-a.com/blogredirect到blog.domain-a.com和domain-b.com/blogredirect到一个完全不同的位置,比如说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 ),那么为了redirect到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]