The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Заголовки и PHP как CGI модуль, !*! zeiter, 21-Мрт-06, 13:37  [смотреть все]
На сервере имеется обработчик ошибки 404, и естественно есть запись:

ErrorDocument 404 /my_script.php

В скрипте отсылается заголовок:

header("HTTP/1.0 200 OK");

Было установлено, что при использовании PHP (5.1.2, 4.4.2) как модуля CGI
заголовки передаются не верно, клиент не получает HTTP/1.0 200 OK,
а получает HTTP/1.1 404 Not Found

При этом для использования PHP как модуль есть такая запись:

Action php5-script /cgi-bin/php5.1.2
AddHandler php5-script .php .php5

Можно ли это как-то вылечить? Т.е. что бы клиент все-таки получал бы HTTP/1.0 200 OK?

  • Заголовки и PHP как CGI модуль, !*! zeiter, 08:09 , 22-Мрт-06 (1)
    Решение было найдено (конечно не без помощи, помогли ребята с http://www.phpclub.ru, за что спасибо им)

    Так вот, что получается:

    Когда скрипт выполняется под версией PHP, установленной как модуль CGI,
    вместо заголовка "HTTP/1.1 200 OK", отправляем "Status: 200 OK" и все в ажуре.

    Стоит отметить, что это не распространяется на тот случай, если скрипт работает под версией PHP, установленной модулем к Апачу.

    Так что, если нужно учесть оба варианта, нужно каким-то образом выяснить, с какой версией имеем дело.

    в шелле можно выполнить php -v
    но когда PHP стоит как модуль CGI, тут могут возникнуть проблемы.

    У кого-нибудь есть решение?

    Или единственный возможный вариант - это брать информацию из phpinfo() и искать там строки:

    Server API CGI


    Получаем:

    <?
        ob_start();
        ob_implicit_flush(0);
        phpinfo(INFO_GENERAL);
        $contents = ob_get_contents();
        ob_end_clean();

       $IS_CGI_VER=strpos($contents, 'CGI');

    ?>




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру