• Weiterleitung

    Eine Weiterleitung, der englische Fachbegriff lautet Redirect, ist gut zu vergleichen mit einem Post-Nachsendeantrag: Er ist z. B. sinnvoll, wenn man dauerhaft umgezogen ist. Ist ein Projekt von einer Domain auf eine andere oder eine einzelne Seite dauerhaft umgezogen, dann wird die sogenannte .htaccess mit der Weiterleitungsform 301 genutzt, mittels welcher alle Anfragen an die alte Domain automatisch an die neue weitergeleitet werden. Ist man nur vorrübergehend ortsabwesend, dann entspricht das bei den Weiterleitung der Form 302, welche jedoch leider nicht immer reibungslos funktioniert (kann z. B. das so genannte Hijacking verursachen) und deshalb besser gemieden werden sollte.

    Es gibt auch diverse andere Möglichkeiten, eine Weiterleitung zu realisieren, wenn aus technischen oder sonstigen Gründen die Möglichkeit einer .htaccess nicht genutzt werden kann. So kann man sie beispielsweise per meta refresh, via php oder auch mittels Javascript umsetzen. Sie haben alle ihre Vor- und Nachteile und wenn irgendwie möglich sollte der .htaccess als sauberster Lösung immer der Vorzug gegeben werden.

    Autor: System
    Stand: 14.09.11

    Überarbeitet von:
    am:
    (Du möchtest diese Erklärung zum Thema überarbeiten / erweitern oder hast eine Erklärung zu einem Thema, das hier fehlt?
    Schick uns bitte Deine neue Version per PM. Danke!)

    Sollte Deine Frage zum Thema nun noch nicht beantwortet sein, kannst Du hier jetzt weiterführende Fragen stellen!
    (einfach auf "Antwort" klicken)

  • Die 301 bzw. 302 Weiterleitung (auch Redirect oder forward genannt) sind zwei Typen der möglichen Weiterleitungen.

    Hauptaufgaben von Weiterleitungen bei der Suchmaschinenoptimierung

    Kurz gesagt: Die Weiterleitung von alten an neue Adressen und die Vermeidung von doppelten Inhalten.

    Weiterleitungen sind immer dann sinnvoll, wenn sich die Struktur einer Seite ändert oder ein Domainumzug vollzogen wurde und der Besucher ohne etwas davon zu merken auf die neue Adresse weitergeleitet werden soll. Würde keine Weiterleitung gesetzt werden, so würde der Besucher bei einer alten URL nur eine 404-Fehlermeldung "Seite nicht gefunden" zu sehen bekommen. Um dies zu verhindern und den Besucher unbemerkt an eine neue Webadresse lenken zu können, müssen Weiterleitungen eingesetzt werden.

    Das andere Einsatzgebiet der Weiterleitung ist auch, verschiedene Seiten mit gleichem Inhalt auf eine einzelne Seite zu konzentrieren um Duplicate Content (doppelte Inhalte unter verschiedenen Adressen) zu vermeiden. Dies kann unter Umständen gerade bei CMS- und Forensystemen wichtig sein, da dort systembedingt einzelne Inhalte oft unter verschiedenen Adressen erreichbar sind. Z.B. ein Artikel bei Wordpress über die "normale" URL mit Parametern und ID und über die suchmaschinenfreundliche URL (Permalink) oder hier im Forum, wo einzelne Posts direkt per URL aufgerufen werden können, aber auch als Teil eines ganzen Themas.

    Welche Unterschiede bestehen zwischen 301-Weiterleitung und 302-Weiterleitung?

    Zu den fast ausschließlich verwendeten Typen der Weiterleitung gehören zwei verschiedene Versionen: Die 301-Weiterleitung und die 302-Weiterleitung. Bei diesem 301 oder 302 handelt es sich um einen HTTP-Status, der an den Browser gesendet wird, ähnlich wie der Status 200 für "ok, Seite gefunden" oder 404 für "Seite nicht gefunden". Für den Besucher ist es egal, welche Weiterleitung verwendet wird, denn beide führen zur neuen Adresse. Jedoch sind Weiterleitungen nicht nur für Besucher wichtig, sondern auch für Suchmaschinen wie Google und diese unterscheiden teilweise sehr streng, welche Weiterleitung verwendet wird.

    301 bedeutet "Moved Permanently" (dauerhaft verschoben), wohingegen 302 für "found" steht. Verwirrend an diesem "found" ist jedoch, dass es eigentlich frei übersetzt für "gefunden an einer temporär anderen Stelle" steht. Es ist also eine Mischung aus dem "Ok" von Statuscode 200 und dem "Moved Permanently" vom 301. Das Dokument wurde also gefunden, es liegt nicht da, wo es vorher war, wird aber nicht immer an dieser anderen, temporären Stelle bleiben. Es wurde also vorübergehend temporär verschoben. Genau dieser Sachverhalt des "temporär" der 302-Weiterleitung kann auch zu Problemen bei Suchmaschinen führen. Zu beachten ist jedoch: Die Standardweiterleitung ist der 302-Redirect, der von eigentlich jedem System ohne weitere Angaben umgesetzt wird.

    Während eine 301-Weiterleitung einer Suchmaschine quasi sagt, "entferne die aktuelle URL und verwende zukünftig die neue", sagt eine 302-Weiterleitung "Verwende vorübergehend die neue URL, komme aber wieder auf die alte zurück". Aus diesem Grund verschwindet die URI mit einer 302-Weiterleitung häufig auch nicht aus den Suchergebnissen, wohingegen Titel und Beschreibung von der neuen Quelle übernommen werden.

    Es sollte daher eigentlich immer darauf geachtet werden, dass es sich bei der Weiterleitung um eine entsprechende 301-Weiterleitung handelt, zumindest wenn es sich um verschobene Seiten oder geänderte Strukturen handelt. Die 301 erfüllt hier ihren Zweck besser und ist für die Aufgabe auch besser geeignet. Zudem kann es sein, dass es bei einer 302-Weiterleitung zu Problemen kommt, insbesondere wenn das Ziel nicht nur eine andere Unterseite, sondern eine gänzlich andere Domain ist: Stichwort "domain-hijacking". Für eine einfache Weiterleitung von einer Loginmaske zu einem Kundenbereich tut es auch eine 302-Weiterleitung, da ja beide Seiten bestehen bleiben.

    Weitere Informationen unter: 301 und 302 Weiterleitungen für SEO

    Welche Arten der Weiterleitung gibt es?

    1. Serverseitige Weiterleitung:

    Unter serverseitigen Weiterleitungen sind Weiterleitungen zu verstehen, die der Webserver, also der Apache, ISS oder andere Versionen direkt auf dem Server ausführen. Bei diesen Weiterleitungen wird in der Regel nur der HTTP-Header an den Browser übermittelt, der selbst dann direkt das neue Ziel aufruft.

    Serverseitig gibt es verschiedene Möglichkeiten, als Beispiel die Weiterleitung per .htaccess:
    Der Apache-Webserver unterscheidet selbst nochmals zwei verschiedene Notationen der Weiterleitungen.

    301/302 Weiterleitung per Mod_Rewrite und RewriteRule

    Apache Configuration
    # 302 Weiterleitung
    RewriteRule ^/alte_seite\.html$ /neue_seite.html [R,L]
    
    # 301 Weiterleitung
    RewriteRule ^/alte_seite\.html$ /neue_seite.html [R=301,L]

    301/302 Weiterleitung per Mod_Alias und Redirect (302) oder RedirectPermanent (301)

    Code
    # 302 Weiterleitung
    Redirect /alt https://beispiel.rocks/neu
    
    # 301 Weiterleitung
    Redirect permanent /alt https://beispiel.rocks/neu

    Hier sieht man auch wieder sehr schön, dass der Standard die 302-Weiterleitung ist. Die Weiterleitung selbst wird durch das Flag "R" in der Klammer gesetzt oder durch die Anweisung "Redirect". Nur mit dem Zusatz "=301" in der Klammer oder der expliziten Angabe von "permanent" wird daraus auch eine 301-Weiterleitung in der .htaccess.

    2. Weiterleitung innerhalb von Programmen / Programmiersprachen:

    Eigentlich gehört dieser Bereich auch mit zu den serverseitigen Weiterleitungen. Sie werden nur nicht direkt für den bzw. im Webserver hinterlegt, aber über eine Programmiersprache an diesen übergeben. Weiterleitungen können dabei für PHP, für Perl, ASP oder alle anderen "Sprachen" verwendet bzw. festgelegt werden.

    Für PHP schaut dies in etwa so aus:

    PHP
    <?php
    # 302 Weiterleitung
    header("Location: https://beispiel.rocks/neue_seite.html");
    
    # 301 Weiterleitung
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: https://beispiel.rocks/neue_seite.html");
    ?>


    3. Clientseitige Weiterleitung:

    Bei den clientseitigen Weiterleitungen übernimmt der Browser die Weiterleitung selbst. Der Browser erhält also vom Server eine Seite, die den HTTP-Status 200 hat und selbst im Inhalt die Weiterleitung beinhaltet. Der Nachteil ist hier, dass der Browser erst einmal das komplette veraltete Dokument aufrufen und empfangen muss, um dann das Ziel der Weiterleitung zu erfahren. Derartige Weiterleitungen werden in aller Regel per Meta-Refresh oder per Javascript ausgeführt. Auch wenn es sich dabei um Weiterleitungen handelt, keine von beiden sendet einen Status 301 oder 302, denn dieser Status kommt nur von Webservern. Daher sind diese Weiterleitungen auch nur bedingt geeignet.

    Der Meta-Refresh wird im HEAD des Dokuments definiert und könnte in etwa da aussehen:

    HTML
    <meta http-equiv="refresh" content="5; URL=https://beispiel.rocks/neue_seite.html">

    Die Weiterleitung per Javascript kann sich eigentlich überall auf der einzelnen Seite befinden.

    HTML
    <script type="text/javascript">
    window.location.href = "https://beispiel.rocks/neue_seite.html";
    </script>

    Die Weiterleitung per Javascript hat durchaus eine Daseinsberechtigung und ist an einigen Stellen sinnvoll. So etwa bei Programmabläufen die bei nur einem einzelnen Aufruf zu lange dauern würden. Mit der JS-Weiterleitung kann die Bearbeitung in mehrere kleine Bereiche getrennt werden, die dann quasi "Step for Step" durchlaufen, ohne dass der Nutzer etwas dazu tun muss. Für eine normale Weiterleitung einer alten Webseite an eine neue Adresse ist sie jedoch ungeeignet.

    Der Meta-Refresh selbst stammt aus sehr alten Zeiten und sollte heute eigentlich nicht mehr verwendet werden. Einige Suchmaschinen werten Webseiten sogar ab, wenn diese mit einer derartigen Weiterleitung arbeiten. Hier ist also Vorsicht geboten.

    Weitere Informationen unter: JavaScript Redirect

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(