Die einfachste Art einer PHP Weiterleitung
Hier ein Codebeispiel, das wohl sehr oft als Weiterleitung benutzt wird. Natürlich gibt es auch noch andere Möglichkeiten, eine Anfrage umzuleiten.
Der Header wird dabei umgeschrieben und somit die Anfrage an den angegebenen Ort weitergeleitet.
Bei der alternativen HTML - Möglichkeit kann...
...bei "Content" angeben werden, wie viele Sekunden gewartet wird bis die Weiterleitung wirkt.
?php header(Location: http://www.kollerit.ch); ? //und hier mit einer Verzögerung: ?php header('Refresh: 3; URL=http://www.kollerit.ch'); ? //und hier noch die eine reine HTML Weiterleitung als Alternative: meta http-equiv='refresh' content='0; URL=http://www.kollerit.ch'
PHP Weiterleitung mit Bedingung
Die nächste Weiterleitung ist an Bedingungen geknüpft.
Zuerst wird herausgefunden, ob die Umgebungsvariabel "http_referer" einen Wert hat. In dieser steht der Pfad, von dem aus die Anfrage erfolgt ist (z.B. Google - Suche). Falls die unten stehende Bedingung erfüllt wird, wird der Besucher zur Startseite weitergeleitet.
Es ist aber auch möglich, dies so zu konfigurieren, dass diese Variabel immer leer bleibt (in den Sicherheitseinstellungen des Browsers).
Grundsätzlich kann man sagen, dass in der Umgebungsvariabel "http_referer" eben der Pfad der zuletzt besuchten Seite drinsteht. Ruft man eine Seite direkt im Browser auf, indem man z.B. den Pfad www.kollerit.ch selbst eintippt, so bleibt die Umgebungsvariabel natürlich leer, weil es keine "zuvor besuchte Seite" gibt.
Das nebenbei zur Umgebungsvariabel http_referer.
Also wieder zurück zur "Weiterleitung mit Bedingung". Dort wird abgefragt, ob die Umgebungsvariabel entweder leer ist, oder mit der eigenen Domain gefüllt ist (obiger zweiter Fall oder falls man auf derselben Seite surft).
Die Bedingung wird dann unwahr (false), wenn nicht der eigene Pfad enthalten ist, z.B. den einer Suchmaschine. Falls dem so ist, soll die Weiterleitung auf die Startseite führen:
<? $herkunft=$_SERVER["HTTP_REFERER"]; if ($herkunft=="" || strstr($herkunft, "http://www.domainname.net")){ echo "eventuell eine Meldung"; }else{ header("Location: http://www.komisch.ch"); } ?> //oder mit der HTML alternative: <? $herkunft=$_SERVER["HTTP_REFERER"]; if ($herkunft=="" || strstr($herkunft, "http://www.domainname.net")){ echo "eventuell eine Meldung"; }else{ echo "<meta http-equiv='refresh' content='0; URL=http://www.domainname.net/unterverzeichnis'>"; } ?>
