rob*_*lls 5 php seo http-headers http-status-code-404 http-status-code-410
在标准的LAMP应用程序上,我使用.htaccess规则将人们发送到我的404页面,如下所示:
ErrorDocument 404 http://www.mydomain.com/404.php
Run Code Online (Sandbox Code Playgroud)
我们使用从文件系统读取文件的php文件提供动态图像,我刚刚注意到,当从应用程序中删除图像时我们没有选择这样的图像,因此请求http://www.mydomain. com/image_4.jg(例如)使用mod_rewrite调用image.php不会将用户重定向到404页面,因为动态图像文件将始终存在.在这种情况下,我知道我应该使用404,但我不知道在哪里.
显然我知道我需要在删除图像时手动将标题重定向插入到404.php页面,但实际上我应该使用此重定向发送404标题吗?看看代码,我们的404.php页面实际上已经发送了一个404标头,("HTTP/1.1 404 Not Found");这是我们的SEO团队几年前指示的,不确定这是否正确?这对我来说似乎是违反直觉的,因为它几乎意味着404页面本身尚未找到.
我想这是2个问题:
编辑
实际上似乎无法同时发送404和重定向,例如这会导致Chrome显示"糟糕!此链接似乎已损坏".信息
header( "Location: /404.php", true, 404 );
Run Code Online (Sandbox Code Playgroud)
如果你打破这样的标题,它也无法正常工作
header("HTTP/1.1 404 Not Found");
header("Location: /404.php" );
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如果您查看标题,它会发送302后跟404.在这种情况下是否足以发送没有重定向的标头?也许只是按照一些人的推荐发送410?
服务器未找到任何与请求 URI 匹配的内容。没有说明这种情况是暂时的还是永久性的。如果服务器通过某种内部可配置机制知道旧资源永久不可用并且没有转发地址,则应使用 410(消失)状态代码。当服务器不希望准确揭示请求被拒绝的原因或没有其他响应适用时,通常使用此状态代码。
当找不到资源时,应将 404 响应发送回客户端。
当找不到图像时,我应该在重定向中发送 404 标头吗?
是的。这告诉请求动态图像的客户端找不到资源。如果您知道资源永远不会返回,请改用 410(消失)。
我的 404 页面真的应该发送 404 标头吗?
是的。请参阅SEO 的 404 错误页面和重定向
header("HTTP/1.0 404 Not Found");应该足够了;但是,如果内容长度小于 512 字节,Google Chrome 将无法显示自定义 404 页面。