我们的 URL 带有 URL 编码的尾随空格 (%20
)产生 404 错误。该应用程序在 Apache 的 Codeigniter 上运行。
如何路由所有带有尾随的 URL%20
到预期的 URL?
问题是一些第三方网站在 HREF 中使用尾随空格链接到我们
在这种情况下,您可以在您的顶部添加类似以下内容.htaccess
文件至redirect(规范化)此类删除尾随空格的请求。
例如,beforeCodeigniter 前端控制器:
RewriteCond %{REQUEST_URI} \s$
RewriteRule (.*) /$1 [R=302,L]
匹配的“已处理”URL 路径RewriteRule
pattern已经删除了尾部斜杠,但是,REQUEST_URI
服务器变量还没有。因此,我们可以检查尾随空格REQUEST_URI
并简单地重定向到“相同的”(已处理的)URL 路径,如RewriteRule
pattern.
The REQUEST_URI
服务器变量已经%解码。这\s
速记字符类与任何空白字符和尾随字符匹配$
将其锚定到 URL 路径的末尾。
首先使用 302(临时)重定向进行测试,以确保其正常工作,然后再更改为 301(永久)重定向。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)