我们正在尝试清理网站上的一些 404 错误,有些网站链接到 /page.html%C2%A0。我尝试使用 mod rewrite 匹配 URL,并将其重定向到 /page.html
RewriteRule ^page.html%C2%A0 /page.html [R=301,L]
这似乎与 url 不匹配,我也尝试将百分号转义为 \%,但也不匹配。
有人知道如何让它工作吗?
答案1
从你的例子来看,我认为问题很可能是你没有/
在请求中包含行距。apache mod_rewrite 文档确实说 \ 应该有效。尝试:
RewriteRule ^/page.html%C2%A0 /page.html [R=301,L]
或者:
RewriteRule ^/page.html\%C2\%A0 /page.html [R=301,L]
如果由于某种原因这些都不起作用,您可以尝试用更大的锤子敲打它(更具包容性的规则集,避免明确使用特殊字符):
RewriteRule ^/?page.html.+ /page.html [R=301,L]
这会将后跟一个或多个任意字符的page.html
(带或不带前导/
) 重定向为直接/page.html
。