【发布时间】:2011-12-08 17:19:36
【问题描述】:
在标准 LAMP 应用程序中,我使用 .htaccess 规则将人们发送到我的 404 页面,如下所示:
ErrorDocument 404 http://www.mydomain.com/404.php
我们使用从文件系统读取文件的 php 文件来提供动态图像,但我刚刚注意到,当从应用程序中删除图像时,我们并没有拾取它,因此请求 http://www.mydomain.com/image_4.jg(对于例如)使用 mod_rewrite 调用 image.php 不会将用户重定向到 404 页面,因为动态图像文件将始终存在。在这种情况下,我知道我应该使用 404,但我不确定在哪里。
显然我知道当图像已被删除时我需要手动插入一个标头重定向到 404.php 页面,但我是否应该使用此重定向发送一个 404 标头?查看代码,我们的 404.php 页面实际上已经发送了一个带有 ("HTTP/1.1 404 Not Found"); 的 404 标头,这是我们的 SEO 团队几年前所指示的,不确定这是否正确?这对我来说似乎违反直觉,因为它几乎暗示 404 页面本身尚未找到。
我猜这是两个问题:
- 当图像不是时,我是否应该在重定向中发送 404 标头 找到了吗?
- 我的 404 页面是否真的应该发送 404 标头?
编辑
实际上似乎不可能同时发送 404 和重定向,例如这会导致 Chrome 显示“糟糕!此链接似乎已损坏”。留言
header( "Location: /404.php", true, 404 );
如果你像这样分解标题,它也不会按预期工作
header("HTTP/1.1 404 Not Found");
header("Location: /404.php" );
在这种情况下,如果您查看标头,它会发送一个 302,然后是一个 404。在这种情况下,可能只发送一个没有重定向的标头就足够了吗?也许只是按照某些人的建议发送 410?
【问题讨论】:
标签: php seo http-headers http-status-code-404 http-status-code-410