PHP:给404不起作用

时间:2012-04-17 11:50:33

标签: php http-headers http-status-code-404

如果找不到请求的页面,我正在使用以下代码显示404:

if($page_exists)
{
    //...
}
else
{
    header('HTTP/1.0 404 Not Found', true, 404);

    $ui->title = '404 Not Found';

    $o .= '<h1>Not found!</h1>' . "\n";
    $o .= '<p>The requested page could not be found.</p>' . "\n";
}

echo $ui->top();
echo $o;
echo $ui->bottom();

但出于某种原因,我永远不会得到我的404状态代码 - 它会给出200而不是。我检查并仔细检查了header()之前没有实际输出,当我检查PHP错误代码时,除了一些通知之外别无其他。我也测试了一个位置标题,但它既不起作用。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

正如Jared所说,对于FastCGI,您必须使用其他形式

header("Status: 404 Not Found");

我会从那里开始。

http://php.net/manual/en/function.header.php

答案 1 :(得分:0)

好的,问题已解决 - 由于某种原因,文件已用BOM保存。