奇怪的问题获取$ env {'query_string'}
-
08-10-2019 - |
题
我在这里有一个奇怪的问题。我将(工作)网站移至新的Apache服务器,我没有直接访问(我必须经过两个人来完成工作)。
该站点使用称为AdFrame的Perl脚本来解析HTML模板。所谓的URL看起来像 /cgi-bin/adframe/index.html?x=something
和 adframe
是脚本。缺失后缀从未引起任何真正的问题。但是在这台新的Ubuntu服务器上 $ENV{'QUERY_STRING'}
总是空的。 $ENV{'REQUEST_METHOD'}
正确显示为获取,但是query_string什么也没显示...
常规 *.cgi脚本显示query_string没有问题。
从日志中,我收集的服务器似乎正在运行FastCGI,MOD_FCGID,并且服务器甚至不接受.pl作为脚本的扩展名。我对服务器软件没有那么多的经验,但是我认为服务器不接受ADFRAME作为CGI脚本可能是一个问题可以指出管理员,或者我可以在.htaccess自己中可以做的事情?无论如何要确保 adframe
被认为是CGI脚本!? (如果那是问题...)
任何帮助都将受到赞赏!托马斯
编辑:我找到了更多详细信息:服务器似乎正在运行清漆高速缓存...那是我通常配置的主要区别...另外,脚本的工作方式是,如果您致电/cgi-bin/adframe/somedir /somefile.html?x= something,$ env {path_info}告诉哪个模板和$ env {query_string}是,Query String是。现在查询字符串为空,但是如果我调用 /cgi-bin /adframe?x = x =某物(没有path_info),则查询字符串显示!有人知道这里发生了什么吗?谢谢!
解决方案
知道了。清漆缓存条将所有查询字符串远离静态内容(*.html等)...
其他提示
只需遇到相同的问题。我在佩尔(Perl)脚本上完整的新手。
我尝试关注:
@values = split (/&/, $ENV{'QUERY_STRING'});
但这没有工作
这有效:
@values = split (/&/, "$ENV{'QUERY_STRING'}");
以防万一其他新手遇到了同样的问题。