我正在尝试获得一个可以与 Apache、IIS 6 和 IIS 7 一起使用的标头。我不会在这里详细说明原因。让我们说这并不像我想象的那么容易:-)
无论如何,这个问题与NPH有关。在我们的代码(最初为 IIS 6 编写)中,我们有
use CGI qw(:standard);
print "HTTP/1.0 200 OK\n";
print header;
在每个 cgi 脚本的顶部;我读到这就是你告诉 IIS 你想要 NPH 的方式。
Apache 使用文件名来查看输出是否为 nph(nph- 必须是文件名的开头)所以我所做的(在 IIS 6 和 Apache 中都适用)如下:
use CGI qw(:standard);
print header('text/html', '200 OK');
有趣的是,IIS 7 似乎需要NPH,所以如果我不这样做
use CGI qw(:standard -nph);
或者
print "HTTP/1.0 200 OK\n";
print header('text/html', '200 OK'); #parameters are apparently optional
浏览器试图对文件做一些奇怪的事情,因为它没有得到 mimetype。
另请注意:IIS 6 和 7 完全可以不打印任何标题,但 Apache 不喜欢这样。
无论如何,现在最好的事情就是做
use CGI qw(:standard);
print header('text/html', '200 OK');
以某种方式在 IIS 7 中工作。有谁知道我该怎么做?我不知道我们服务器配置的所有细节,但如果你告诉我如何获取你可能需要的任何细节,我可以做到。
无论哪种方式都感谢!