Newsletter

  • Immer informiert über die neusten Trends, Webseiten und Tutorials! Einfach hier für den monatlichen Newsletter anmelden.
  •  Eintragen
  •  Austragen

Login

Umfrage

  • Haben Sie Interesse an Softwaretipps für Webmaster?
  •  
  • ja
  • nein
  •  


Linktipps

Anzeige

 

www.finanzcheck.de
» Startseite » Server- und Sicherheits - Tutorials

404 Fehler abfangen

Haben Sie schon einmal eine eigene Website erstellt und dann eines Tages entschieden, dass Sie ein neues Design oder eine neue Struktur einbringen wollen? Wenn sie insbesondere die Dateistruktur hinter Ihrer Website ändern, kann dies eine Qual für Ihre Benutzer sein, die aufrund von "dead links" im Nirvana Ihres Webservers enden. Dieses Tutorial zeigt Ihnen, wie Sie diese "Error 404 Not Found" Fehlermeldungen nach Ihren eigenen Wünschen gestalten und den Benutzer auf Ihre Website zurückführen können.

Nehmen wir an, dass wir einige Dateien wie hier auf unserem Webserver liegen haben:

Root
/index.php
/page1.php
/page2.php
/page3.php

Unsere neue Struktur sieht folgendermassen aus:

Root
/index.php
/artikel.php (war page1.php)
/bilder.php (war page2.php)
/gaestebuch.php (war page3.php)

Selbstverständlich werden die alten Dateien vom Server entfernt, wenn wir die neuen Daten aufspielen.

Angenommen auf jede der Seiten wurde von verschiedensten Stellen gelinkt, z.B. von Suchmaschinen, anderen
Homepages oder jemand hat einen Bookmark angelegt.
Wenn ein Benutzer nun diesem Link folgt bekommt er eine "Error 404 / Document Not Found" Fehlermeldung. Wir
versuchen nun diese Fehlermeldung zu umgehen und den Benutzer nicht zu verlieren, sondern auf unsere Website
umzuleiten.
Wir können Apache's eigebaute Fehlerbehandlungsfunktionen umgehen und dem Benutzer eine selbstgestaltete HTML-
Seite zusenden.
Als erstes bauen wir uns nun diese HTML Seite. Wir möchten dem Benutzer eine Fehlermeldung anzeigen, dass diese
Seite nicht mehr existiert und ihn anschliessend auf die Startseite weiterleiten.

Und so geht es:
  1.  <html>
  2.  <head>
  3.  <!-- Meta refresh um den Benutzer zur index.php weiterzuleiten -->
  4.  <meta http-equiv="refresh" content="2;url=/index.php" />
  5.  </head>
  6.  <body>
  7.  <strong>Diese Seite existiert nicht mehr auf unserem Server.
  8.  Sie werden auf unsere Startseite umgeleitet. Bitte aktualisieren Sie Ihre Bookmarks! </strong>
  9.  </body>
  10.  </html>


Das ist es schon. Eine kleine HTML Seite die den Benutzer auf die index.php weiterleitet und dabei natürlich frei designbar ist.

Als nächstes benötigen wir nur noch eine "Steuerungsdatei" für den Webserver und eine kleine änderung in den
Einstellungen.
Wir öffnen die Datei httpd.conf im Apache-Verzeichnis und fügen folgene Zeilen Code hinzu (meißtens: "/www/htdocs/deinesite"):
  1.  <directory /www/htdocs/deinesite>
  2.  AllowOverride FileInfo
  3.  </directory>


Dieser gerade genannte Schritt ist meißtens nicht mehr nötig da diese Option schon vom Provider festgelegt wurde. Also am Besten einfach mal testen ob es geht, weil die wenigsten werden Zugriff auf diese Apache Datei haben ;).

Wenn dies getan ist legen wir im Verzeichnis der Website eine Date Namens ".htaccess" an.
Alles was in diese Datei stehen muss (angenommen die Fehlerdatei heißt "error404.php") ist:
  1.  ErrorDocument 404 /error404.php


Wenn all dies getan ist müssen wir den Webserver neu starten und können unsere Arbeit ausprobieren.
Wir gehen auf http://www.deinedomain.de/irgendeineseite.php (Wobei es irgendeineseite.php natürlich nicht geben darf).

Wir sollten nun unsere Fehlermeldung sehen und nach 2 Sekunden auf die index.php weitergeleitet werden.
Herzlichen Glückwunsch.
Damit wären alle "Error 404"-Fehlermeldungen elegant behoben.
Benutzer werden die Website nicht mehr verlassen, nur weil eine Date nicht gefunden werden kann.

Mit der gleichen Methode können auch alle anderen Fehlerseiten des Server überschrieben werden.
Hier eine kleine Übersicht:
Clienterror
400 Bad Request
401 Unauthorized
402 Payment Required
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable
407 Proxy Authentication Required
408 Request Timeout
409 Conflict
410 Gone

Servererror
500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
505 HTTP Version Not Supported

Mehr dazu unter http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html.

Fragen? Probleme? Keine Antworten? Hilfe finden Sie im Webmaster Forum!

Diese Artikel könnten Sie auch interessieren:
Spammer täuschen und bremsen
Status Codes beim HTTP-Response
Traffic sparen mit .htaccess als Bilder-Schutz
Emailharvester und unerwünschte Bots mit .htaccess sperren
Die .htaccess Datei


 
Anzeige