hey
backhome
1pixel
Navigation
Mainpage
Techpage
Internet
favicon
firefox
firefox
firefox
firefox
webspace
FSBG
redirect
Computer
adventure engines
csv2txt
GPG4win
primzahlen
Shutdown
Sudoku
text formatierer
Warum Weiterleitungen?
Weiterleitung einrichten!
Anmerkungen
PHP Redirect
Javascript Redirect


Weiterleitungen? Wofür das denn!

Dieses Kapitel ist recht kurz. Warum das nun am Anfang des Kapitels steht? Einfach darum, und weil die anderen Artikel in diesem Teil meiner Homepage bisher recht lang sind!

Eine Weiterleitung (Englisch: Redirect oder Forwarding) bedeutet, dass der Benutzer auf eine Internetseite kommt, aber ohne sein Zutun nicht auf dieser bleibt, sondern eine weitere, andere Seite nach einer bestimmten Zeit automatisch aufgerufen wird.
Auf dieser Seite findest du Informationen zum HTML Redirect und zum PHP Redirect. Leider auch zum Javascript Redirect...
Diese Funktion benutzt man, wenn eine Seite oder ein Dokument auf einen anderen Server umgezogen ist, oder man die gesamte Homepage anders Strukturiert, und als Folge dessen die gewünschte Seite nicht mehr dort ist, wo sie mal war, aber externe Quellen immernoch darauf verlinken.
Man könnte an dieser Stelle auch einfach einen Link zur neuen Seite setzten. Aber eine Weiterleitung funktioniert automatisch, und wenn es geht, warum denn auch nicht, das zeigt dem Benutzer der Seite, dass sich der Autor der Seite mit dem was er tut auskennt (auch wenn dies nicht unbedingt der Fall sein muss, so kann man doch ganz einfach diesen Eindruck erwecken, mir gelingt das ja auch gerade...).



Und so geht das ganze!


Eine Weiterleitung einzurichten geht recht schnell.

Anstelle der alten .html Datei auf dem Server kommt eine viel kürzere. Du kannst den ganzen Kopf drin lassen, das erleichtert es dem Browser des Benutzers mit der Weiterleitungsseite zurande zu kommen, aber im Kopfteil musst du auch noch etwas einfügen.
Der redirect, der dich auf diese Seite gebracht hat zum Beispiel benutzt folgenden Code im Header:
<head>
 <title>...

 <meta http-equiv="refresh" content="3; URL=index.php?art=n3">
</head>

Die Zahl hinter dem content=" gibt an wie lange gewartet werden soll, ehe weitergeleitet wird, in diesem Fall sind das 3 Sekunden.
Hinter URL= gibst du einfach die url ein, auf die Weitergeleitet wird.

Zu Beachten ist die etwas seltsame Kombination der Anführungszeichen. Alles im content ist in einem Pack von Anführungszeichen, hinter den Sekunden kommen keine und vor der url auch keine.

Im normalen html Teil des html-Dokuments kannst du dann noch etwas zu der Weiterleitung schreiben, z.B. wie lange es dauert bis der User weitergeleitet wird. Und ganz wichtig ist es, einen Link zu der Seite einzufügen, zu der weitergeleitet wird, da einige Browser und Usereinstellungen keine Weiterleitungen erlauben. Somit wird der User, der weitergeleitet werden soll, in diesem Fall nicht weitergeleitet, kann dann aber einfach auf den Link klicken und dann doch noch die gewünschte Zielseite erreichen, und alles ist doch wieder in Butter(blume).


Anmerkungen!


Die Weiterleitung ist eigentlich kein html Standard und wird vom W3 Konsortium nicht empfohlen, mit der Begründung, dass die Seite dann für einige (eineiige?) Benutzer nicht mehr anzeigbar wäre.
Zum Glück funktioniert die Weiterleitung schon seit Urzeiten des Internets tadellos und wird es wohl auch weiterhin tun.

Um ganz auf Nummer sicher zu gehen fügt man einen Link zu der Seite ein, zu der weitergeleitet werden soll.
Damit sollte dann echt jeder zurecht kommen.


PHP Redirect!


Wenn du deine Seite auf PHP basierend geschrieben hast kannst du auch den Königsweg gehen und einen redirect header mit PHP an den Browser des Benutzers senden. Dies muss jedoch, genauso wie Cookies, geschehen, ehe irgend eine Ausgabe deines Scripts an den Client geschickt wird. Also noch keine html Ausgabe, noch nicht einmal ein Leerzeichen!
Wenn du schonmal einen Cookie mit PHP gesetzt hast, weißt du was gemeint ist, und die verlinkte Anleitung auf der php.net Seite ist auch recht ausführlich und sogar auf deutsch.

Das ganze sieht in deinem Script dann in etwa so aus:
<?php
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.example.com/index.php?page=1&chapter=2" );

exit;
?>
Der html Header in der ersten Zeile ist gut für Bots von Suchmaschinen, da sie dadurch Bescheid wissen und sonst manche Inhalte doppelt indexieren und das gibt Abzüge in der B-Note, und im Ranking. Den 301 Moved Permanently Header benutzt du natürlich nur, wenn die Seite auch tatsächlich für immer umgezogen ist, sonst gibt es noch die Möglichkeit 303 See Other und 307 Temporary Redirect, wobei der 307 Redirect wohl häufiger benutzt wird als der 303 Redirect, aber am häufigsten immernoch der 301 Redirect.
Die zweite Zeile sollte natürlich die URL enthalten zu der weitergeleitet wird und nicht dieses Beispiel. Wenn du auf eine komplizierte php URL weiterleitest in der viele & drin sind, dann reicht es, wenn du & in die URL Zeile schreibst, mit den html Zeichenkodierungen wie &amp; oder &#38; kommt diese php Funtion nicht so gut zurecht und stottert dann total.
Die letzte Zeile (exit;) ist nur zur Sicherheit in PHP, damit der Rest des Scripts nicht weiter ausgeführt wird (wenn der Redirect zum Beispiel mit einer if Bedingung verknüpft ist), kann aber auch weggelassen werden, wenn du gerne gefährlich lebst...
exit(); sieht zwar irgendwie gewohnter aus, aber laut php.net ist exit; ein Sprachkonstrukt und kann ohne Klammern aufgerufen werden, wenn kein Status übergeben wird. Da!


Javascript Redirect!


Und der Vollständigkeit halber möchte ich hier noch eben die Möglichkeit eines Redirects einer Seite mit Javascript erwähnen. Leider ist Javascript nicht besonders geeigenet um Redirects einzubauen, aber es geht auch. Dabei ist aber Vorassetzung, dass der Besucher der Seite Javascript in seinem Browser aktiviert hat. Da der User Javascript aber auch ausschalten und blockieren kann, kann es passieren, dass die Weiterleitung eben nicht bei allen Nutzern funktioniert. Außerdem kann man damit Suchmaschinencrawlern nicht so genau erklären, was passiert, da mein keine 3XX Status Codes mitschicken kann, wie das beim PHP Redirect der Fall ist.

Aber genug über Javascript hergezogen (es ist wirklich Scheiße und nicht zu empfehlen, aber here we go), kommen wir nun dazu, wie man eben die Javascript Weiterleitung bewerkstelligt:
<script>
window.location = "http://ww.example.com";
</script>
Ja, genau, es ist so einfach. Aber es hat eben die gerade eben beschriebenen Nachteile. Benutze lieber einen PHP redirect.
Es gibt noch viel mehr Möglichkeiten mit Javascript einen Redirect anzulegen, aber dies ist die offensichtlichste und wenn ich noch mehr davon hier erwähne benutzt du am Ende tatsächlich noch einen davon obwohl ich hier ständig vor JS warne...



Auf nem Apache Server kannst du auch in einer .htaccess Datei Redirects bewerkstelligen, aber dazu eventuell mehr in einem späteren Update oder auf einer anderen Seite im Netz, der php redirect ist ja auch Serverseitig und klappt recht gut.







Kommentare

Kein Kommentar

Neuen Kommentar abgeben
Text:
*


Name:
*

Spamschutz: bitte 7832 eintragen
*

web:
 
email:
*
Mail-Adresse verstecken?