htaccess redirectmatch正则表达式,以避免无限循环

时间:2016-11-08 19:23:01

标签: regex .htaccess redirect

我的链接格式错误,会将人们发送到我的站点地图,但会发送到

这样的网址
www.example.com/sitemap.php'"abc def 

等。然后,它会向他们提供断开的链接。

当我查找坏链接时,我写了一个像这样的301来使页面的所有流量都被清理干净:

RedirectMatch 301 ^sitemap.php(.*) http://www.example.com/sitemap.php

但是这给了我“太多301s”错误,因为site.com/sitemap.php与表达式匹配并且它被循环。是否有一个正则表达式,我可以使用而不是(。*)如果根本没有任何东西就不匹配(即如果URL只是以“.php”结尾?

1 个答案:

答案 0 :(得分:1)

只需使用此规则:

RedirectMatch 301 ^/(sitemap\.php).+ /$1

清除浏览器缓存。注意使用.+(任何字符中的1个或更多)而不是.*(0个或更多个字符)