在标准的 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 页面实际上已经发送了一个 404 标头,("HTTP/1.1 404 Not Found");
这是我们的 SEO 团队几年前所指示的,不确定这是否正确?这对我来说似乎违反直觉,因为它几乎暗示 404 页面本身尚未找到。
我想这是2个问题:
- 当找不到图像时,我应该在重定向中发送 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?