RedirectMatch语法简化了这些条目

时间:2017-06-08 19:53:47

标签: .htaccess redirect

我希望在处理旧的子文件夹和人们链接的可能迭代时删除我的重定向。现在,我这样做:

RedirectMatch 301 (?i)/old-sub-folder/index.html$ https://www.website.com/new-place/
RedirectMatch 301 (?i)/old-sub-folder/$ https://www.website.com/new-place/
RedirectMatch 301 (?i)/old-sub-folder$ https://www.website.com/new-place/

所以它是同一页面,但是如果我不在这里添加每个版本,那么将转到404页面。有没有办法将它组合成一行?

1 个答案:

答案 0 :(得分:0)

根据Apache - Regular Expression (Regex)

  

Apache使用PCRE库提供的Perl兼容正则表达式。

这意味着,您可以使用公共前缀/old-sub-folder和可选的尾部(?:/|/index.html)?构建正则表达式,例如

RedirectMatch 301 (?i)/old-sub-folder(?:/|/index.html)?$ https://www.website.com/new-place/

虽然,我不确定,这是否真的有所改善。具有三个单独的简单正则表达式可能比一个更复杂的表达式更具可读性(和可维护性)。