我在这里有一个奇怪的问题。我将(工作)网站移至新的Apache服务器,我没有直接访问(我必须经过两个人来完成工作)。

该站点使用称为AdFrame的Perl脚本来解析HTML模板。所谓的URL看起来像 /cgi-bin/adframe/index.html?x=somethingadframe 是脚本。缺失后缀从未引起任何真正的问题。但是在这台新的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'}");

以防万一其他新手遇到了同样的问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top