Error Page to Handle All Errors

This is a way to make a single error page for all errors, which is easier to update and maintain.

1) Point all error pages at one location in your .htaccess file

ErrorDocument 400 /error.php
ErrorDocument 401 /error.php
ErrorDocument 403 /error.php
ErrorDocument 404 /error.php
ErrorDocument 500 /error.php
etc.

2) PHP for error.php page in root

$status = $_SERVER['REDIRECT_STATUS'];
$codes = array(
       403 => array('403 Forbidden', 'The server has refused to fulfill your request.'),
       404 => array('404 Not Found', 'The document/file requested was not found on this server.'),
       405 => array('405 Method Not Allowed', 'The method specified in the Request-Line is not allowed for the specified resource.'),
       408 => array('408 Request Timeout', 'Your browser failed to send a request in the time allowed by the server.'),
       500 => array('500 Internal Server Error', 'The request was unsuccessful due to an unexpected condition encountered by the server.'),
       502 => array('502 Bad Gateway', 'The server received an invalid response from the upstream server while trying to fulfill the request.'),
       504 => array('504 Gateway Timeout', 'The upstream server failed to send a request in the time allowed by the server.'),
);

$title = $codes[$status][0];
$message = $codes[$status][1];
if ($title == false || strlen($status) != 3) {
       $message = 'Please supply a valid status code.';
}
// Insert headers here
echo '<h1>'.$title.'</h1>
<p>'.$message.'</p>';
// Insert footer here

Comments

  1. User Avatar
    TeMc
    Permalink to comment#

    That’s fairly awesome !

    Comes in quite handy with a static or less-CMS-y site.

  2. User Avatar
    xk2
    Permalink to comment#

    I use it often for customers that prefer static sites.

  3. User Avatar
    Daniel Miguel
    Permalink to comment#

    It’s nice to do a single php to all errors, you have to adapt your layout at once and if you change anything is easier…

    Great for all websites…

  4. User Avatar
    Andrew Champ
    Permalink to comment#

    Very useful, thanks!

  5. User Avatar
    Attila Hajzer

    what are static sites?

  6. User Avatar
    black-light-studio
    Permalink to comment#

    nice to built with as a start

  7. User Avatar
    Julesmazur
    Permalink to comment#

    You forgot the most important error code of all in your .htaccess: Error 418.

  8. User Avatar
    Neeraj Singh
    Permalink to comment#

    Small trick and Big Effects :) Good One..

  9. User Avatar
    GR
    Permalink to comment#

    “Database error” is another you’ll see moslty from failed forum sites… probably SQL related though… not sure.

Submit a Comment

Posting Code

You may write comments in Markdown. This makes code easy to post, as you can write inline code like `<div>this</div>` or multiline blocks of code in triple backtick fences (```) with double new lines before and after.

Code of Conduct

Absolutely anyone is welcome to submit a comment here. But not all comments will be posted. Think of it like writing a letter to the editor. All submitted comments will be read, but not all published. Published comments will be on-topic, helpful, and further the discussion or debate.

Want to tell us something privately?

Feel free to use our contact form. That's a great place to let us know about typos or anything off-topic.

icon-anchoricon-closeicon-emailicon-linkicon-logo-staricon-menuicon-nav-guideicon-searchicon-staricon-tag