Заголовок PHP («Location: /404.php», true, 404) не работает

Я бы хотел использовать следующее для перенаправления страниц, которых больше нет в базе данных, на пользовательскую страницу 404:

ob_start();
....
if ( !$found ):
  header( "Location: /404.php", true, 404 );
  exit();
endif;

Но на самом деле это не перенаправляет, а просто показывает пустую страницу ( из-за вызова exit () перед любым выводом в браузер).

Я также пробовал следующее:

if ( !$found ):
  header( "HTTP/1.1 404 Not Found" );
  exit();
endif;

С 'ErrorDocument 404 /404.php' в моем файле .htaccess, но это также просто показывает пустая страница.

И если я сделаю это:

if ( !$found ):
  header( "HTTP/1.1 404 Not Found" );
  header( "Location: /404.php" );
  exit();
endif;

Он выполняет перенаправление, но с заголовком 302.

Любая помощь будет принята с благодарностью.

13
задан Vivienne 26 May 2011 в 16:56
поделиться