dsovc00684 2017-10-03 14:47
浏览 84
已采纳

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

I am issuing a 404 in my coupon.php page:

<?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");
}

Inside my apache config httpd.conf I have the following declared:

ErrorDocument 404 /404.html

However when i go to the page that issues the 404 it does not load the error document but just shows a browser error stating a 404. It only seems to load when a page does not exist, not when i issue a 404 in php.

Any help would be appreciated

  • 写回答

1条回答 默认 最新

  • dtzd65908 2017-10-03 14:57
    关注

    Sending a 404 error using header("HTTP/1.0 404 Not Found"); will only tell the end browser that there was an error finding this page. It won't show your custom error page.

    If you want to show the end user an error page, you will need to include or redirect to it.

    Place either of the two below options under your 404 header.

    Include Option

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

    Redirect Option

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?