在我的 ap_hook_handler 中,当查询字符串的一部分包含 url 编码实体时,我遇到了 request_rec->args 的奇怪行为。
以下是我的发现:
场景 #1:对查询字符串中的第一个 'e' 进行编码:
结果:
r->uri: /test
r->args: "group= %mployees" (注意很多空格)
场景#2:编码第二个'e':
结果:
r->uri: /test
r->args: "group=employ 0.000000e-01s"
场景#3:编码最后一个'e':
结果:段错误
当我对路径的任何部分(不是查询字符串)进行 url 编码时,Apache 的行为:
场景#4:在路径中编码'e'而不是查询字符串:
结果:
r->uri: /test (预期)
r->args: NULL (预期)
为什么 'args' 和 'uri' 处理 url 编码的方式不同,如何在我的模块中获取规范化的查询字符串,就像我可以使用 'request_rec->uri' 一样?