我在这里遇到了一个奇怪的问题。我正在将一个(工作)站点移动到一个我无法直接访问的新 apache 服务器(我必须通过两个人才能完成工作)。
该站点使用名为 adframe 的 perl 脚本来解析 html 模板。调用它的 URL 看起来就像/cgi-bin/adframe/index.html?x=something
是adframe
脚本。缺少的后缀从未引起任何实际问题。但是在这个新的 Ubuntu 服务器$ENV{'QUERY_STRING'}
上总是空的。$ENV{'REQUEST_METHOD'}
正确显示为 GET,但 query_string 什么也没显示...
常规 *.cgi 脚本显示 query_string 没有问题。
从我收集到的日志中,服务器似乎正在运行 fastcgi、mod_fcgid,并且服务器甚至不接受 .pl 作为脚本的扩展名。我对服务器软件没有太多经验,但我认为这可能是服务器不接受 adframe 作为 cgi 脚本并因此没有正确传递 query_string 的问题......谁能给我一些提示我在哪里可以指向管理员,或者我可以自己在 .htaccess 中做些什么?无论如何要确定,adframe
被识别为cgi脚本!?(如果这是问题......)
任何帮助表示赞赏!托马斯
编辑:我发现了更多详细信息:服务器似乎正在运行 VARNISH 缓存...这是与我通常的配置的主要区别...此外,脚本的工作方式是,如果您调用 /cgi-bin/adframe/somedir /somefile.html?x=something, $ENV{PATH_INFO} 告诉要解析哪个模板,而 $ENV{QUERY_STRING} 是查询字符串。现在查询字符串是空的,但是如果我调用 /cgi-bin/adframe?x=something(没有任何 PATH_INFO),查询字符串就会出现!有谁知道这里发生了什么?谢谢!