The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Заголовки и PHP как CGI модуль"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"Заголовки и PHP как CGI модуль"  
Сообщение от zeiter email(ok) on 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?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Заголовки и PHP как CGI модуль"  
Сообщение от zeiter email(ok) on 22-Мрт-06, 08:09 
Решение было найдено (конечно не без помощи, помогли ребята с 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');

?>

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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