我已将整个网站从自己的域名移动到我的主站点。我需要在旧网站上添加301。但是,我需要root到一个位置,但是所有页面都转到另一个位置。
如果我的旧网站为oldsite.com
,我需要转到newsite.com/blog
以及oldsite.com/blog-post
等子网页转到newsite.com/blog-post
。
我在另一个网站上执行了完全重定向:RewriteRule ^(.*)$ http://www.newsite.com/$1 [R=301,L]
但是将根发送到newsite.com
。此规则适用于移动页面,但不适用于页面。
澄清:
oldsite.com
→newsite.com/blog
oldsite.com/blog-post
→newsite.com/blog-post
答案 0 :(得分:1)
根页面可以与空字符串^$
匹配,因此您可以使用两个规则,一个用于根
RewriteRule ^$ http://newsite.com/newroot [L]
其他页面的另一条规则
RewriteRule ^. http://newsite.com/blog%{REQUEST_URI} [L]
排除根目录的另一种方法是使用.+
代替.*
,有关差异的详细信息,请参阅Apache - Regular Expressions或Regular Expression Reference: Quantifiers。