有几个指向我管理的站点的链接,其中网站管理员错误地在域名和页面名称之间包含了一个空格:
www.domain.com/ page.html
当用户点击时,这会给出
www.domain.com/%20page.html
我想使用 mod_rewrite 将命中重定向到不正确的地址到正确的地址,但是我的重写规则不起作用。我尝试了以下但没有成功:
rewriterule ^\%20page.html$ /page.html [R=301,L] rewriterule ^.20page.html$ /page.html [R=301,L]
我如何编写规则来捕获此地址?我想保持 PageRank 并且不因链接损坏而受到惩罚,但我无法让网站管理员修复他的链接.
最佳答案
使用文字空格,用反斜杠转义,这样它就不会结束正则表达式:
RewriteRule ^\ page.html$ /page.html [R=301,L]
关于.htaccess - Mod_rewrite 不适用于以 %(百分号)开头的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/734654/