404 Fehler auf Startseite umleiten

Inhaltsverzeichnis

 

Fehler umleiten

Es muss nicht unbedingt eine eigene Fehlerseite sein, zumindest nicht wenn die Fehler gar nicht dokumentiert oder getrackt werden sollen. Da dies meistens eben nicht der Fall ist, kann es angebracht sein, die 404 Fehler einfach direkt auf die Startseite umzuleiten.

Das geht mit Wordpress ganz einfach, schließlich hat jedes Theme auch ein eigenes Fehler-Template und wenn nicht, dann erstellt ihr im Ordner eures Themes einfach eine 404.php Datei. Zum umleiten ist dann nur sehr wenig Code nötig.

Folgendes in die 404.php eures Themes kopieren:

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: ".get_bloginfo('url'));
exit();
?>

Durchaus nützlich

Gerade für Websites, die die Dinge nicht ganz so ernst nehmen, eignet sich die einfache Umleitung auf die Startseite durchaus. Natürlich sollten im Idealfall gar keine Fehler auftauchen, doch meistens gibt es eben doch hier und da einen 404 und dieser führt dann zur Fehlerseite. Die zeigt aber meist nichts als den Fehler, der Nutzer hat dadurch keinen Vorteil, verlässt eher noch die Website.

Wird er nun aber direkt auf die Startseite weitergeleitet, versucht er wahrscheinlich den gewünschten Inhalt zumindest zu finden. So oder so bringt eine Fehlerseite nur bedingt etwas, eine Umleitung auf die Startseite präsentiert dagegen eine Möglichkeit.

Benachrichtigung via Mail bei 404-Fehlern

WordPress macht es Nutzern sehr einfach ihre Themes und Seiten anzupassen, doch hin und wieder ist dann trotzdem der Wurm drin. Dann spinnen bestimmte Bereiche einer Website und Nutzer bekommen die bekannten 404-Fehler präsentiert. Eigentlich nicht weiter schlimm, doch wenn ihr nicht gerade ständig eure Log-Dateien durchlest, fallen euch die Fehler wohl kaum auf.

Auch die Anzeige in den Google Webmaster Tools ist verzögert, direkt reagieren könnt ihr in solchen Fällen also meistens nicht. Ein Snippet hilft nun dabei, denn das sorgt dafür, dass bei 404-Fehlern eine Mail an den Admin gesendet wird. So wisst ihr sofort, ob ein schwerwiegender Fehler vorliegt, oder ob sich selbiger demnächst von alleine erledigt. Vor allem bekommt ihr es aber mit, wenn ein Nutzer plötzlich nicht mehr weiter kommt.Nützlich ist das für all diejenigen, die gerne die Kontrolle behalten und auch unterwegs über Probleme auf der eigenen Website benachrichtigt werden wollen.

Folgendes in die 404.php Datei eures Themes kopieren:

Name);
}

if (isset($_SERVER['HTTP_REFERER'])) {
	$referer = clean($_SERVER['HTTP_REFERER']);
} else {
	$referer = "undefined";
}

if (isset($_SERVER['REQUEST_URI']) && isset($_SERVER["HTTP_HOST"])) {
	$request = clean('http://' . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
} else {
	$request = "undefined";
}

if (isset($_SERVER['QUERY_STRING'])) {
	$string = clean($_SERVER['QUERY_STRING']);
} else {
	$string = "undefined";
}

if (isset($_SERVER['REMOTE_ADDR'])) {
	$address = clean($_SERVER['REMOTE_ADDR']);
} else {
	$address = "undefined";
}

if (isset($_SERVER['HTTP_USER_AGENT'])) {
	$agent = clean($_SERVER['HTTP_USER_AGENT']);
} else {
	$agent = "undefined";
}

if (isset($_SERVER['REMOTE_IDENT'])) {
	$remote = clean($_SERVER['REMOTE_IDENT']);
} else {
	$remote = "undefined";
}

$time = clean(date("F jS Y, h:ia", time()));


function clean($string) {
	$string = rtrim($string); 
	$string = ltrim($string); 
	$string = htmlentities($string, ENT_QUOTES); 
	$string = str_replace("\n", "
", $string);

	if (get_magic_quotes_gpc()) {
		$string = stripslashes($string);
	} 
	return $string;
}

$message = 
	"TIME: "            . $time    . "\n" . 
	"*404: "            . $request . "\n" . 
	"SITE: "            . $site    . "\n" . 
	"THEME: "           . $theme   . "\n" . 
	"REFERRER: "        . $referer . "\n" . 
	"QUERY STRING: "    . $string  . "\n" . 
	"REMOTE ADDRESS: "  . $address . "\n" . 
	"REMOTE IDENTITY: " . $remote  . "\n" . 
	"USER AGENT: "      . $agent   . "\n\n\n";

mail($email, "404 Alert: " . $blog . " [" . $theme . "]", $message, "From: $email"); 

?>

Schnelles handeln dank Hinweis via Mail

Sinn macht das Snippet vor allem für Kontrollfreaks wie mich, die ihre Website 24 Stunden im Blick behalten möchten. Ob das für euer Privatleben nun gut ist, wage ich zu bezweifeln, doch wenn die Website nicht erreichbar ist, oder Nutzer ständig Fehler präsentiert kriegen, verliert ihr vermutlich auch schnell Kunden/Einnahmen. Um solchen Dingen also bereits vorab entgegenzuwirken, eignet sich die Benachrichtigung per E-Mail ganz sicher. Sollte es dann irgendwelche schwerwiegenden Fehler geben, werdet ihr sofort benachrichtigt und könnt handeln.

Christian Pust
WordPress & Onlinemarketing Experte mit über 15 Jahren Erfahrung. Entwickler & CEO von Trackboxx – der Google Analytics Alternative.

Eine Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Das könnte dich auch interessieren

Du benötigst Unterstützung bei deinem WordPress Projekt?

Dein Ansprechpartner
Christian