apache conf errordocument不适用于php中声明的404标头

时间:2017-10-03 14:47:29

标签: php apache

我在coupon.php页面中发出404

<?php
$id=$_GET['cid'];
$rs=mysqli_fetch_assoc(mysqli_query($scx_dbh,"select * from locations where locid=$id"));
if($rs==NULL){
  header("HTTP/1.0 404 Not Found");
}

在我的apache config httpd.conf中,我声明了以下内容:

ErrorDocument 404 /404.html

然而,当我转到发布404的页面时,它不会加载错误文档,只是显示一个浏览器错误,说明404。它似乎只在页面不存在时加载,不是当我在php发出404时。

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

使用header("HTTP/1.0 404 Not Found");发送404错误只会告诉最终浏览器发现此页面时出错。它不会显示您的自定义错误页面。

如果您想向最终用户显示错误页面,则需要包含或重定向到该页面。

将以下两个选项之一放在404标题下。

包含选项

include('/path/to/404.html);

重定向选项

header("Location: /path/to/404.html");