E-mail über Error 404 erhalten

mts-error-404
WordPress liefert die Möglichkeit die Error 404 Seiten selbst zu gestalten. Dies ist ein Service an Deine Leser und Leserinnen, wenn mal eine Seite, ein Artikel nicht gefunden wird. Dies alles nutzt aber nichts, wenn Du kaum Möglichkeit hast diese Error 404 abzustellen. Klar man kann dies auch via den Webmastertools von Google finden, doch ich mag manchmal hauseigne Lösungen lieber, weil ich da schneller reagieren kann.

Ein wirklich uraltes Script hilft mir dabei, dass ich ganz am Ende des 404.php templates eingebaut habe.

$ip = getenv ("REMOTE_ADDR");
$requri = getenv ("REQUEST_URI");
$servname = getenv ("SERVER_NAME");
$combine = $ip . " tried to load " ;
$url = $servname . $requri ;
$httpref = getenv ("HTTP_REFERER");
$httpagent = getenv ("HTTP_USER_AGENT");
$today = date("D M j Y g:i:s a T");
$message2 = "On $today, $combine:\n
$error = $_SERVER['REDIRECT_STATUS'];
http://www.$url\n
User Agent = $httpagent \n
$httpref ";
$to = "DeineEmailAdress";
$subject = "404 Error Report";
$from = "From:AbsenderEmailAdresse\r\n";
if ($error != 200) {
	mail($to, $subject, $message2, $from);
}

Wie arbeitet dieses Error 404 E-mail

DeineEmailAdress => hier einfach Deine E-mail Adresse eintragen.
AbsenderEmailAdresse => hier die Absende E-mail Adresse eingeben. Zu 99% ist es klug diese mit wordpress-klammeraffe-domainadresse anzugeben. So verschickt WordPress ja auch seine Datenbankbackups via E-mail.

Vorteil des kleinen Error 404 E-mail

Ich sehe wer diesen Error 404 verursachte. Ob es Bots waren, oder Leser und Leserinnen. ;)

Update im Oktober 2011.

14

14 Beiträge zu “E-mail über Error 404 erhalten

  1. Kommentar Autor
    florian
    Kommentar

    gute idee, mir wären das aber zu viele emails. einige bots wissen sich leider nicht zu benehmen und würden mir dann pro tag eine dreistellige zahl neuer mails einbringen.

    ich denke ich bleibe dabei hin und wieder meine logfiles zu checken.

  2. Kommentar Autor
    Monika
    Kommentar

    hi florian
    ich habe die meisten Bost ausgeschlossen und als es mal einen Relaunch gab war dies sehr sehr nützlich

  3. Kommentar Autor
    maxe
    Kommentar

    Den Fehler könnte man sich noch mit ins Boot holen:

    $error = $_SERVER['REDIRECT_STATUS'];

    und danach die angepasste Fehlermeldung ausgeben. Aber aufgepasst, den Status 200 rausfiltern sonst wird man überschwemmt:

    if ($error != 200) {
    	mail($to, $subject, $message2, $from);
    }
  4. Kommentar Autor
    Markus
    Kommentar

    Ich würde „To“ aus der Datenbank abfragen, und die in der wp_options-Tabelle hinterlegte Admin-Mailadresse ansprechen. So kann man das Script ohne Anpassung in mehrere Blogs übernehmen, wenn einem die Absender-Adresse egal ist.

  5. Kommentar Autor
    Monika
    Kommentar

    ja Maxe, wenn man da den 200 nicht aussperrt geht man wahrlich über ;)

    Hallo Markus, ja das ist auch eine gute Idee,

  6. Ping WordPress-Newsletter 18 | WordPress & Webwork

  7. Kommentar Autor
    Ramona
    Kommentar

    Für mich war das Neuland, ich probier’s jetzt einfach mal. Wenn da zuviel reinkommt, werfe ich den Code einfach raus und schaue in das Webmastertool ;) Danke für den Tipp und viele weitere, die ich hier immer wieder finde!

  8. Kommentar Autor
    Ramona
    Kommentar

    Nun ist’s passiert, neben Bots-Meldungen gibt es auch echte Fehler im Theme. Wie werde ich der Sache Herr? @maxe: Wohin mit dem Code, bin kein PHPler.

  9. Kommentar Autor
    Monika
    Kommentar

    Du schaust welche Seiten es nicht mehr gibt,
    das siehst du in der Email,

    dann guggst Du nach bei Dir, ob es diese tatsächlich nicht mehr gibt,
    und überlegst dir wohin möchtest du die Leser schicken, wenn sie diese „Worte gesucht haben“
    also zb alte url ist

    deinedomain.tld/ichbingutaberweg/

    umleiten möchtest du auf

    deinedomain.tld/ichbinbesser/

    dann öffnest du die htaccess -die liegt auf deinem Webspace mit einem Texteditor
    und tippst gleich unterhalb des WP codes hinein

    Redirect 301  /ichbingutaberweg/     http://deinedomain.tld/ichbinbesser/

    hochladen und guggen -beim Aufrufen der alten URL muss nun die neue automatisch kommen,
    wennste dich vertippst fliegt dir ein error 500 um die Ohren;) dann den Eintrag löschen,
    htaccess wieder hoch, guggen, ob alles wieder passt und neu probieren

    das macht man nächtens, da stören Fehler nicht so

  10. Kommentar Autor
    maxe
    Kommentar

    @Ramona
    Den Code

    $error = $_SERVER['REDIRECT_STATUS'];

    setzt du einfach irgendwo weit oben zwischen Monikas Code.
    Und das IF baust du einfach um den „mail“-Befehl.

  11. Kommentar Autor
    Ramona
    Kommentar

    Hatte eben einen Parse-Fehler, wie muss denn das Herumbauen korrekt aussehen? Bei mir ist das so falsch:

    if ($error != 200)
    mail($to, $subject, $message2, $from); }
  12. Kommentar Autor
    Marcus
    Kommentar

    Danke für den Tipp!

    Aber wie kann ich denn jetzt testen, ob das auch wirklich funktioniert?

    Wie ich den Code der anderen Seite – also den 2. – eingebunden habe, hat er mir gleich mehrfach eine Fehlermeldung geschickt.

    Jetzt wo ich den Deinen Code eingebaut habe, möchte ich natürlich ausprobieren, ob das hinhaut oder eine evtl. Mail irgendwo im Nirwana verschwindet

  13. Kommentar Autor
    Monika
    Kommentar

    ich habe den 1. code in dem Artikel oben im Einsatz und wenn da wirklich mal ne Email verschwindet => ach so tragisch ist das nicht