标签: pathinfo

如果路径信息包含部分 URI 编码的 URL,Apache 将返回 404

(哇,这个标题太烂了......如果你有更好的建议,请随时在评论中提出建议或编辑它。)

我有一个带有 CGI 程序的服务器,它接收一个 URL 作为路径信息,检查用户的 IP 地址,并将它们重定向到直接转到该 URL(如果它们在我们组织内部)或通过代理将它们发送到 URL (如果它们是外部的)。CGI 本身运行良好,但有些 URL apache 返回 404 Not Found 错误而不是调用脚本。这似乎与包含 URI 编码路径的目标 URL 相关。例如,

http://myserver.org/cgi-bin/ipchk/http://other.server.org/10.1007%2F3-540-28519-9_8

返回 404,而

http://myserver.org/cgi-bin/ipchk/http://other.server.org/10.1007/3-540-28519-9_8

(相同的 URL,但%2F解码为 a /)正常工作。

我已经验证(通过error_log在启动时输出),当返回 404 时,ipchk脚本根本没有启动。这些错误肯定来自 apache 本身,而不是由脚本将用户重定向到不存在的 URL 引起的。

为什么 pathinfo-URL 的编码会影响 apache 定位 ipchk 脚本的能力,我需要做些什么才能让它将所有 /cgi-bin/ipchk/URI传递给ipchk不管接下来会发生什么?

apache-http-server http-status-code-404 pathinfo

2
推荐指数
1
解决办法
2504
查看次数