我想使用以下命令将数据库中不存在的页面重定向到自定义404页面:PHP header(“Location:/404.php”,true,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;
在我的.htaccess文件“的ErrorDocument 404 /404.php”,但是这也只是显示一个空页。
如果我这样做:
if (!$found):
header("HTTP/1.1 404 Not Found");
header("Location: /404.php");
exit();
endif;
它重定向,但有302头。
任何帮助将不胜感激。
根据定义,重定向是302头代码,这会导致新的请求。一个404不应该在任何地方重定向 - 这是一个最终的在线代码。而不是重定向,只需做一个'include('404.php')'。 – 2011-05-26 17:00:52
感谢您的所有输入。我去了头部(“HTTP \ 1.1 404 Not Found”),后面跟着一个404页面。每天学习新东西:-) – Vivienne 2011-05-26 17:19:14
你应该选择一个答案 – dynamic 2011-05-28 01:36:13