301 重定向,字符串中包含“%”

301 redirect with "%" in string

有人从不错的地方链接到我的网站,但这个白痴输入错误 URL,他在最后做了 %20(可能是他的网站那样做的)。所以我想重定向 http://example.com/%20 to http://example.com, because http://example.com/%20 is of course going to http://example.com/404 因为那个无效 URL.

我试过这个:

rewriterule ^%20(.*)$ http://example.com [r=301,nc]

但这就是行不通。看起来 % 字符必须以某种方式转义或其他。所以我也试了

rewriterule ^\%20(.*)$ http://example.com [r=301,nc]

通过转义来赋予 % 其原始含义,但它似乎也不起作用。另请阅读 htaccess to escape percent (%) from URL,但那里提供的解决方案似乎也不起作用。任何人都知道如何做到这一点?非常感谢。

您可以使用 \x20:

RewriteRule 中匹配 %20
RewriteRule ^\x20(.*)$ / [R=301,L,NE]