dongliuzi3410 2011-05-06 16:12
浏览 12
已采纳

PHP标头404无法正常工作

Why is this not working, as in the pre-set 404 page is not loaded:

header("HTTP/1.0 404 Not Found");
exit;

.htaccess has the ErrorDocument 404 /404.html directive set.

Thank you.

  • 写回答

3条回答 默认 最新

  • dongzhi6087 2011-05-06 16:24
    关注

    Make sure your customized error page /404.html has the content size greater than 512 bytes. Many browsers like IE, Chrome etc don't show your customized page if content length of your custom 404 page is less than 512.

    UPDATE

    Based on your comments here is what I think is happening.

    If you look at the access.log or http headers in Firebug/HTTP Watch etc of this blank page, you'd see a 404 return code. Once the web server starts processing the PHP page, it's already passed the point where it would handle 404 handling by itself since your php file is actually FOUND. Now since your php code is merely returning status 404 without any content therefore a blank page gets displayed.

    Now since this is correct apache behavior and its up to you to create the contents for the 404 page. Something like this in your above php code will be fine I think:

    <?php
    header("HTTP/1.0 404 Not Found");
    exit("<h1>Not Found</h1>
    The requested URL " . $_SERVER["REQUEST_URI"] . " was not found on this server.
    <hr>");
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?