PHP:给出一个404不';行不通

PHP:给出一个404不';行不通,php,http-headers,http-status-code-404,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 n

如果找不到请求的页面,我将使用以下代码显示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();
如果($page\u存在)
{
//...
}
其他的
{
标头('HTTP/1.0 404未找到',true,404);
$ui->title='404未找到';
$o.=“未找到!”。“\n”;
$o.='找不到请求的页面。

。“\n”; } echo$ui->top(); echo$o; echo$ui->bottom();
但由于某些原因,我从来没有得到我的404状态码-它给出了一个200。我已经检查并再次检查了header()之前是否没有实际输出,当我检查PHP错误代码时,除了一些注意事项之外没有其他内容。我还测试了一个位置头,但它也不起作用


有什么想法吗?

正如Jared所说,对于FastCGI,您必须使用另一种形式

标题(“状态:404未找到”)

我会从那里开始


好的,问题解决了-出于某种原因,文件与BOM一起保存。

您是否尝试过使用
HTTP/1.1
?FastCGI?尝试状态:404未找到您正在使用的Web服务器?你用的是哪种SAPI?您是否有联机URI示例?将硬编码的
HTTP/1.0
替换为
$\u SERVER['SERVER\u PROTOCOL']
,然后查看它的帮助。HTTP/1.0是在恐龙时代使用的。我使用的是Apache服务器。我尝试了HTTP/1.1,但没有成功,事实上,只要我在header()中使用$HTTP\u response\u code参数,就不会有太大区别。