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

2022-01-11 00:00:00 header http-status-code-404 php

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

I have a 404.php file in my site's main directory and I was using header('Location: 404.php'); for a while until someone said that you should use header('HTTP/1.0 404 Not Found'); instead. So I replaced it with that and then added: ErrorDocument 404 /404.php to my apache config file and restarted the server but it doesn't work.

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

I tried different variations including ErrorDocument 404 404.php and ErrorDocument 404 mywebite/404.php but to no avail.

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

What I mean by doesn't work is that earlier when using header('Location: 404.php'); it would redirect to the 404.php file but when I replace it with header('HTTP/1.0 404 Not Found'); it seems to just skip over the line and not do anything. It most certainly is not redirecting. The reason I am calling for the redirect is because if a $_GET header value is not recognized the page should 404.

推荐答案

不,它可能确实有效.它只是不容易看到.而不是 just 使用 header 调用,尝试这样做,然后包括 404.php,然后调用 die.

No, it probably is actually working. It's just not readily visible. Instead of just using the header call, try doing that, then including 404.php, and then calling die.

您可以通过使用以下内容创建一个名为 test.php 的 PHP 文件来测试 HTTP/1.0 404 Not Found 是否有效:

You can test the fact that the HTTP/1.0 404 Not Found works by creating a PHP file named, say, test.php with this content:

<?php

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

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

Then viewing the result with curl -D /dev/stdout reveals:

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.

相关文章