Я пытаюсь получить заголовок, который будет работать с Apache, IIS 6 и IIS 7. Я не буду вникать в причину этого. Давайте просто скажем, что это не так просто, как я думал, что это будет :-)Как я могу получить заголовок, который будет работать с IIS 6, 7 и Apache?
В любом случае проблема имеет какое-то отношение к NPH. В нашем коде (изначально написанном для IIS 6) мы имеем
use CGI qw(:standard);
print "HTTP/1.0 200 OK\n";
print header;
в верхней части каждого скрипта cgi; Я читал, что так вы сообщаете IIS, что вы хотите NPH.
Apache использует имя файла, чтобы увидеть, если выход НПХ (nph- должно быть начало файла), так что я сделал (который работает в обоих IIS 6 и Apache) заключается в следующем:
use CGI qw(:standard);
print header('text/html', '200 OK');
IIS 7, интересно, кажется, требуют НПХ, так что если я не либо делать
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. Кто-нибудь знает, как я могу это сделать? Я не знаю всех деталей нашей конфигурации сервера, но если вы сообщите мне, как получить какие-либо подробности, которые могут вам понадобиться, я могу это сделать.
Спасибо в любом случае!