mod_rewrite基于最后一个段,上面有任意数量的文件夹

时间:2012-10-12 14:46:56

标签: apache mod-rewrite redirect url-rewriting apache2

我正在将旧网站迁移到新网站,并且需要大量的网址重定向/重写。

作为示例,我需要将 / old_page 重定向到 / new_page ,问题是/ old_page可以在其上方具有任意数量的网址片段,例如 / some / other / section / old_page

目前我必须使用以下两条规则:

RewriteRule ^old_page/?$ /new_page? [R=permanent,L]
RewriteRule ^(.*)/old_page/?$ /new_page? [R=permanent,L]

无论如何只用一条规则来实现这个目标吗?我确实试过用这个:

RewriteRule ^(.*)/?old_page/?$ /new_page? [R=permanent,L]

但是这会导致非预期的匹配,例如/ do_not_move_old_page也会被重定向。

1 个答案:

答案 0 :(得分:1)

尝试:

RewriteRule ^(.*/)?old_page/?$ /new_page? [R=permanent,L]