Weiterleitung


aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
25px Dieser Artikel behandelt die Weiterleitung im World Wide Web. Zur Weiterleitung von E-Mails siehe Mail-Umleitung.
Redundanz Die Artikel Weiterleitung und Domainweiterleitung überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zusammenzuführen (→ Anleitung). Beteilige dich dazu an der betreffenden Redundanzdiskussion. Bitte entferne diesen Baustein erst nach vollständiger Abarbeitung der Redundanz und vergiss nicht, den betreffenden Eintrag auf der Redundanzdiskussionsseite mit {{Erledigt|1=~~~~}} zu markieren. Trofobi (Diskussion) 21:14, 14. Aug. 2012 (CEST)

Durch eine Weiterleitung (engl. forward) oder Umleitung (engl. redirect) werden Funktionsaufrufe an dritte Systeme weitergegeben.

Serverseitige Weiterleitungen im World Wide Web werden beispielsweise durch entsprechende HTTP-Antworten eines Servers realisiert. Ein Proxy ist eine weitere Möglichkeit.<ref>ProxyMaxForwards Directive. In: Apache HTTP Server Version 2.0 Documentation. Apache Software Foundation. Abgerufen am 11. September 2011.</ref> In ähnlicher Weise können auch Druckaufträge im Rahmen des Spoolings an andere Drucker weitergeleitet werden.

Arten der Weiterleitungen

Weiterleitungen können auf 2 Arten erfolgen:

Implementierung

HTTP-Header

HTTP bietet die Möglichkeit, im Header mit der Angabe Location auf einen anderen URI zu verweisen. Damit wird der Browser angewiesen, die angegebenen URI zu laden. Dies wird begleitet durch einen 30x Statuscode. Es gibt verschiedene Status Codes für Weiterleitungen unterschiedlicher Intention und technischer Spezifikation.

Status Codes für Weiterleitungen sind spezifiziert in RFC 7231 sowie RFC 2616 (HTTP/1.1). Verschiedene HTTP Status Codes für Weiterleitungen werden von Browsern und Suchmaschinen entsprechend unterschiedlich interpretiert. Bezüglich der Intention kann unterschieden werden zwischen temporären und permanenten Weiterleitungen. Die technische Spezifikationunterscheidet bei Aspekten wie Caching und Request Methode für den Ziel-URI der Weiterleitung.

Die folgende Tabelle zeigt alle Status Codes zur Weiterleitung und ihre technischen Spezifikationen:

HTTP Status Code HTTP Version Temporary / Permanent Cachebar Request Methode zweiter Request
301 HTTP/1.0 Permanent ja GET / POST kann sich ändern
302 HTTP/1.0 Temporary nicht per Default GET / POST kann sich ändern
303 HTTP/1.1 Temporary niemals Immer GET
307 HTTP/1.1 Temporary nicht per Default wie erster Request
308 HTTP/1.1 Permanent ja wie erster Request
Quelle: "Audisto - SEO & Redirects"<ref name="Audisto">SEO & Redirects - The Total Guide. Audisto. Abgerufen am 29. Oktober 2015.</ref>


Das folgende Beispiel zeigt den HTTP-Header mit 301 Status Code:

<syntaxhighlight lang="text"> HTTP/1.1 301 Moved Permanently Location: http://www.example.org/ ... </syntaxhighlight>

Im folgenden Beispiel wird der HTTP-Header für eine Weiterleitung mit Status Code 301 durch ein PHP-Programm gezeigt:

<syntaxhighlight lang="php"> <?php header("HTTP/1.1 301 Moved Permanently"); header("location: http://example.org/"); exit; ?> </syntaxhighlight>

Ohne spezifizierte Angabe eines Status Codes, wird in PHP der 302 Status Code verwendet. Beispiel:

<syntaxhighlight lang="php"> <?php header("location: http://example.org/"); exit; ?> </syntaxhighlight>

Die Weiterleitung kann auch durch folgenden Eintrag in einer .htaccess-Datei erreicht werden, vorausgesetzt der Webserver unterstützt diese Methode: <syntaxhighlight lang="text"> Redirect /beispiel.html http://www.example.org </syntaxhighlight>

Hierbei wird man beim Aufrufen der Datei beispiel.html auf die URL http://www.example.org weitergeleitet.<ref>Erklärung bei drweb.de</ref><ref name="WebCode-Blog" />

HTML Meta Refresh

HTML erlaubt einen so genannten Meta Refresh, welches den Browser anweist, die Seite nach vorgegebener Zeit zu aktualisieren oder gar eine andere URL zu laden.

Mit folgendem Befehl in dem Kopfbereich der HTML-Datei setzt man eine Weiterleitung per Meta Refresh:

<syntaxhighlight lang="html4strict"> <meta http-equiv="refresh" content="5; URL=http://www.example.org"> </syntaxhighlight>

Hier bei wird man nach 5 Sekunden automatisch auf die URLhttp://www.example.org weitergeleitet.<ref>Automatische Weiterleitung zu anderer Adresse (Forwarding) im SELFHTML-Wiki</ref><ref name="WebCode-Blog">Browser-Weiterleitungen WebCode-Blog, abgerufen am 12. Mai 2011</ref>

Diese Art der Weiterleitung wird vom W3C-Konsortium allerdings nicht empfohlen, und zwar aus folgenden Gründen: Erstens wird die Seite, auf der sich die Meta-Angabe zur Weiterleitung befindet, komplett geladen, sodass sie komplett einsehbar ist. Zweitens kommt es zu dem Problem, dass wenn der Benutzer nach erfolgreicher Weiterleitung auf den Zurück-Button klickt, er dann sofort wieder weitergeleitet wird.<ref>Use standard redirects W3C Quality Assurance Tips</ref>

HTML Frameset

Hauptartikel: Frame (HTML)
Datei:HTML-Frame.jpg
Beispiel für eine HTML-Seite mit Frames

In HTML kann man sogenannte Frames verwenden, um den Inhalt anderer Webseite automatisch anzuzeigen. Hierbei handelt es sich um eine Art Rahmen, in dem dann mehrere Seiten bzw. HTML-Dokumente dargestellt werden können.

Dabei gibt es auch die Möglichkeit Inhalte von fremden Webseiten einzubinden, ohne sie von ihrer Ursprungsseite entfernen zu müssen, indem man einfach die Seite als Frame einbindet (z. B. einen Wikipedia-Artikel). Allerdings gibt es zurzeit noch keine einheitliche Regelung, ob das Einbinden fremder Webseiten verboten ist oder nicht.

JavaScript

<syntaxhighlight lang="html4strict"> <script type="text/javascript">

   window.location.href = "http://www.example.org/";

</script> </syntaxhighlight>

Platziert man dieses JavaScript-Skript innerhalb des Head-Elements eines HTML-Dokuments, wird der Besucher automatisch an die angegebene URL weitergeleitet. Dabei gilt jedoch dieselbe Problematik wie bei der HTML-Implementierung.<ref name="WebCode-Blog" />

Implementierung in einem Wiki

Bei MediaWiki können Weiterleitungen angelegt werden. In diesem Fall enthält der Artikel keinen Inhalt, sondern nur die Anweisung der Weiterleitung auf eine andere Artikelseite. Im Unterschied zu den vorangegangenen Beispielen erfolgt dabei die Weiterleitung intern über die Wiki-Engine und nicht über den Browser.

Mit folgendem Befehl setzt man eine interne Weiterleitung in einem Mediawiki-Artikel:

#WEITERLEITUNG [[Hauptseite]]

Statt #WEITERLEITUNG funktionieren auch #Weiterleitung, #weiterleitung, #REDIRECT, #Redirect und #redirect.<ref name="H:WL">Hilfe:Weiterleitung in der deutschsprachigen Wikipedia</ref>

Hierbei wird man beim Aufruf der Seite auf die Hauptseite des betroffenen Wikis weitergeleitet.<ref name="H:WL" />

Siehe auch

Einzelnachweise

<references />