header('HTTP/1.0 404 Not Found');什么都不做

2022-08-30 09:34:11

我在我网站的主目录中有一个404.php文件,我使用了一段时间,直到有人说你应该使用。所以我用它替换了它,然后添加到我的apache配置文件中并重新启动了服务器,但它不起作用。header('Location: 404.php');header('HTTP/1.0 404 Not Found');ErrorDocument 404 /404.php

我尝试了不同的变体,包括和,但无济于事。ErrorDocument 404 404.phpErrorDocument 404 mywebite/404.php

我的意思是不起作用的是,早些时候使用它时会重定向到404.php文件,但是当我用它替换它时,它似乎只是跳过行而不做任何事情。它肯定不是重定向。我呼吁重定向的原因是,如果无法识别$_GET标头值,则页面应为404。header('Location: 404.php');header('HTTP/1.0 404 Not Found');


答案 1

不,它可能实际上正在工作。它只是不容易看到。与其使用调用,不如尝试执行此操作,然后包括 ,然后调用 。header404.phpdie

您可以通过创建一个名为(例如)的PHP文件来测试其工作的事实,例如,具有以下内容:HTTP/1.0 404 Not Foundtest.php

<?php

header("HTTP/1.0 404 Not Found");
echo "PHP continues.\n";
die();
echo "Not after a die, however.\n";

然后查看结果显示:curl -D /dev/stdout

HTTP/1.0 404 Not Found
Date: Mon, 04 Apr 2011 03:39:06 GMT
Server: Apache
X-Powered-By: PHP/5.3.2
Content-Length: 14
Connection: close
Content-Type: text/html

PHP continues.

答案 2

您可以尝试使用可选参数指定 HTTP 响应代码:

header('HTTP/1.0 404 Not Found', true, 404);

推荐