Это способ сделать одну страницу ошибки для всех ошибок, которую легче обновлять и поддерживать.
1) Поместите все страницы ошибок в одно место в файле .htaccess.
ErrorDocument 400 /error.php ErrorDocument 401 /error.php ErrorDocument 403 /error.php ErrorDocument 404 /error.php ErrorDocument 500 /error.php etc.
2) PHP для страницы error.php в корне
$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 '
'.$message.'
'; // Insert footer here