我有一个PHP脚本,当在数据库中找不到页面时,我发送http标头404 not found
,而PHP发送HTTP 200.Google网站管理员工具显示其软404错误。
<?php
if (mysql_num_rows($rs_press) == 0) {
header("HTTP/1.1 404 Not Found");
include('404.shtml');
exit;
}
?>
并且GMT页面的HTTP响应非常奇怪,显示HTTP 200 OK。为什么PHP发送200而不是404错误,因为这很奇怪?
if代码工作正常,但只发送404标头。这是页面的输出..
我该如何解决? 我在专用服务器上运行PHP 5.6 / Apache,Smarty SSL激活。
答案 0 :(得分:1)
PHP header() function实际上有3个参数:
void header ( string $string [, bool $replace = true [, int $http_response_code ]] )
尝试将代码更改为:
<?php
if (mysql_num_rows($rs_press) == 0) {
header("HTTP/1.1 404 Not Found", true, 404);
include('404.shtml');
exit;
}
?>
或者,您可以尝试使用http_response_code()功能。