URL 中的换行符 %250A:Apache 引发 404 错误

URL 中的换行符 %250A:Apache 引发 404 错误

这是导致问题的脚本路径的示例:

http://example.com/index/index/tokenID/345%250Atest

如果我尝试在生产服务器上访问此链接,则会收到 404 错误。如果我尝试在本地计算机上访问它:

localhost:8080/index/index/tokenID/345%250Atest

一切运作良好。

两个服务器都在 Apache 上。生产服务器 - Cent OS,本地主机 - Ubuntu。看起来我忘记在 Apache 文件中设置一些配置了。

答案1

来自 RFC 1738 规范(不是最新的):

因此,只有字母数字、特殊字符“$-_.+!*'(),”以及用于保留目的的保留字符可以在 URL 中以未编码的形式使用。

当前规范为 RFC 3986

现在上面的语句针对的是未编码的字符,而你的是编码的。我还没有找到类似的语句。

URI 由一组有限的字符组成,包括
数字、字母和一些图形符号。
这些字符的保留子集可用于分隔
URI 中的语法组件,而其余字符(包括非保留字符集和不作为分隔符的保留字符)定义每个
组件的标识数据。

相关内容