Я пытаюсь получить заголовок, который будет работать с 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. Кто-нибудь знает, как я могу это сделать? Я не знаю всех деталей для конфигурации нашего сервера, но если вы скажете мне, как получить любую информацию, которая вам может понадобиться, я могу это сделать.
Спасибо в любом случае!