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

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
 

kruglov

Новичок
ErrorDocument не для обработки виртуальных адресов, он для обработки несуществующих адресов.

Используйте mod_rewrite. Кто это, хорошо знает поиск.
 

izstora

Новичок
Я понимаю. Но проблема заключается в том, что движок на котором работает сайт устроен именно так.

Вопрос в том, почему в двух случаях разный результат?
 

akxxiv

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