如何使用htaccess将根目录和页面重定向到不同的位置?

时间:2016-07-03 17:02:12

标签: apache .htaccess redirect mod-rewrite

我已将整个网站从自己的域名移动到我的主站点。我需要在旧网站上添加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.comnewsite.com/blog

oldsite.com/blog-postnewsite.com/blog-post

1 个答案:

答案 0 :(得分:1)

根页面可以与空字符串^$匹配,因此您可以使用两个规则,一个用于根

RewriteRule ^$ http://newsite.com/newroot [L]

其他页面的另一条规则

RewriteRule ^. http://newsite.com/blog%{REQUEST_URI} [L]

排除根目录的另一种方法是使用.+代替.*,有关差异的详细信息,请参阅Apache - Regular ExpressionsRegular Expression Reference: Quantifiers