Не меняется статус страницы

  • Автор темы Автор темы izstora
  • Дата начала Дата начала

izstora

Новичок
Не меняется статус страницы

Мне нужно сменить статус 404 на 200 на несуществующем урле.
Если использовать стандартный интерпретатор php, установленный на хостинге,
то фунция
PHP:
header('HTTP/1.1 200 OK');
делает то, что нужно

Но я использую самостоятельно скомпилированный интерпретатор php. И в этом случае статус не меняется.

Вот более подробно с примерами:

В первом случае:
index.php
PHP:
<?
header('HTTP/1.1 200 OK');
?>
c .htaccess
Код:
DirectoryIndex index.php
ErrorDocument 404 /index.php
ErrorDocument 403 /index.php
Пример по адресу http://test2.zelenogradcy.ru/qwertysef (или любой другой, несуществующий адрес на этом домене) статус переписывается с 404 на 200

А во втором (используется интерпретатор собранный самостоятельно):
index.php
PHP:
<?
header('HTTP/1.1 200 OK');
?>
с .htaccess
Код:
DirectoryIndex index.php
ErrorDocument 404 /index.php
ErrorDocument 403 /index.php

Action php-script /cgi-bin/php
AddHandler php-script .php
Пример по адресу http://test1.zelenogradcy.ru/qwertysef (или любой другой, несуществующий адрес на этом домене) статус остается 404

Подскажите, пожалуйста, в чем может быть дело. Очень нужно статус 200.
Вот ссылка на инструкцию по сборке php, которой я пользовался http://masterhost.ru/support/doc/php/#templates
 
ErrorDocument не для обработки виртуальных адресов, он для обработки несуществующих адресов.

Используйте mod_rewrite. Кто это, хорошо знает поиск.
 
Я понимаю. Но проблема заключается в том, что движок на котором работает сайт устроен именно так.

Вопрос в том, почему в двух случаях разный результат?
 
Вероятно потому, что в первом случае рнр работает как модул, а во втором - как cgi
Что мешает в аштиаксессе изменить еррор досумент на директивы модреврайт?
 
Сверху