htaccess将旧子文件夹重定向到非子文件夹

时间:2016-11-23 00:19:02

标签: .htaccess redirect mod-rewrite

我有一个旧网站,网址为A和B

A. www.site.com/about
B. www.site.com/about/subpage

我需要重定向

A. www.site.com/about-us
B. www.site.com/not-a-sub-anymore

我的htaccess包含

Redirect 301 /about /about-us
Redirect 301 /about/subpage /not-a-sub-anymore

第一个重定向工作正常,但是,我的第二个重定向似乎继承了第一个规则,导致我重定向到www.site.com/about-us/not-a-sub-anymore,这显然导致了404。我该如何解决这个问题?

编辑:我正在使用apache2.2.3,我在apache 2.4.8中看到他们添加了RewriteRule IgnoreInherit这似乎是我正在寻找的东西。不幸的是,我无法控制我的apache版本。

1 个答案:

答案 0 :(得分:1)

我建议通过RewriteRule重定向以防止其他规则被触发:

RewriteRule ^about/subpage$     /not-a-sub-anymore  [R=301,L]
RewriteRule ^about$             /about-us           [R=301,L]

但是,如果您坚持使用重定向301,我会尝试重新排列订单:

Redirect 301 /about/subpage /not-a-sub-anymore
Redirect 301 /about         /about-us