(哇,这个标题太烂了......如果你有更好的建议,请随时在评论中提出建议或编辑它。)
我有一个带有 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
不管接下来会发生什么?