Dies ist eine Möglichkeit, eine einzige Fehlerseite für alle Fehler zu erstellen, die einfacher zu aktualisieren und zu pflegen ist.
1) Richten Sie alle Fehlerseiten in Ihrer .htaccess-Datei auf einen Ort aus
ErrorDocument 400 /error.php
ErrorDocument 401 /error.php
ErrorDocument 403 /error.php
ErrorDocument 404 /error.php
ErrorDocument 500 /error.php
etc.
2) PHP für error.php-Seite im Stammverzeichnis
$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
Das ist ziemlich genial!
Sehr nützlich für eine statische oder weniger CMS-lastige Seite.
Ich nutze es oft für Kunden, die statische Seiten bevorzugen.
Es ist schön, ein einziges PHP für alle Fehler zu haben, man muss sein Layout auf einmal anpassen und wenn man etwas ändert, ist es einfacher…
Großartig für alle Websites…
Sehr nützlich, danke!
Was sind statische Seiten?
Schön, als Startpunkt zu haben
Du hast den wichtigsten Fehlercode von allen in deiner .htaccess vergessen: Fehler 418.
Kleiner Trick und große Wirkung :) Gut gemacht..
„Datenbankfehler“ ist ein weiterer, den man meistens auf gescheiterten Forenseiten sieht… wahrscheinlich SQL-bezogen… bin mir nicht sicher.
$title = $codes[$status][0];
$message = $codes[$status][1];
Ich habe den Code im Stammverzeichnis in error.php eingefügt und einen Undefined-Fehler erhalten
für Titel und Nachricht