htaccess使用通配符重定向而不是递归

时间:2015-03-02 23:43:12

标签: .htaccess redirect

我已将约20个旧页面整合到一个新页面中,并希望将指向这些页面的Web链接重定向到新页面。 我开始将htaccess中的每一个列为Redirect 301,但我认为可能会节省处理时间以进行通配符串匹配。不幸的是它失败了,因为我怀疑我想去的页面也被抓到了通配符。

例如我想重定向,www.mydomain.com / catalog / listname_oranges.php,listname_lemons.php,listname_figs.php等重定向到www.mydomain.com/catalog/listname_addons.php

所以我尝试了这个,但失败了:

RedirectMatch 301 ^ / catalog / listname _。* $ /catalog/listname_addons.php

如何解决此问题,使其不再递归?

1 个答案:

答案 0 :(得分:0)

您可以在正则表达式中使用否定前瞻:

RedirectMatch 301 ^/catalog/listname_(?!addons\.php).*$ /catalog/listname_addons.php

这样,listname_addons.php文件与正则表达式不匹配,但其他所有内容都将匹配。