从页面代码中间声明 404 状态


Declaring 404 status from middle of page code?

Google的网站管理员工具正在敲打我发送正确的404信号,而不是"软404"。 我找到了生成错误的页面。 我有一个网站,用户在其中创建图像,当Google尝试访问不再存在的图像时会出现错误。 似乎编写代码的开发人员已经在代码中准备了一条消息,以备何时发生这种情况,但Google并不高兴,因为它不是一个合适的404。 所以,在页面中间有这样的东西:

if ($empty_page)    {
    echo 'The image you are trying to view is no longer available.';
} else {....renders content...

在谷歌搜索问题后,我尝试了这样的事情:

if ($empty_page)    {
    header( "HTTP/1.1 404 Not Found" );
    echo 'The image you are trying to view is no longer available.';
} else {....renders content...

那行不通..我不觉得? 人们一直说它会生成一个标题,所以我查看生成的页面的代码,但我在代码中的任何地方都没有看到"404"。 那是它应该在哪里吗? 请帮忙..我太迷茫了>_<</p>

这到底是404吗? 也许应该是410吗?

您不需要在响应页面中看到 404。它在标题中。您可以在"网络"选项卡中查看带有 chrome 开发者工具栏(或 Firefox 上的 firebug)的响应标头。

这个标题应该可以解决问题。我建议在设置 404 标头并回显消息后立即退出。这将确保您在设置标题和打印未找到消息后不会输出任何内容。