Eine einfache Weiterleitung lässt sich auf den verschiedensten Wegen realisieren. Wir stellen Ihnen die vielfältigen Möglichkeiten vor.
Die nostalgische Methode
Sehr einfach und in der Regel für jeden Browser verständlich lässt sich eine Weiterleitung mit einem META-Tag im Seitenkopf (HEAD) realisieren.
<META CONTENT=”15;URL=http://www.all4homepages.de” HTTP-EQUIV=”refresh”>
Hierbei gibt man als CONTENT zunächst die Wartezeit in Sekunden (im Beispiel 15 Sek.) an, getrennt durch ein Semikolon von der URL inklusive http://.
Mit JavaScript weiterleiten
Möchte man mit Hilfe von Javascript weiterleiten, lässt sich das durch folgenden Code einfach umsetzen:
<script language=javascript>
<!–
top.location.href = “seite2.html”;
–>
</script>
Bei dieser Lösung muss der Browser jedoch JavaScript unterstützen und ausführen. Der Vorteil gegenüber dem META-Tag ist, dass mit JavaScript schneller (unter einer Sekunde) bzw. fast unmittelbar weitergeleitet wird.
Möchte man, dass die Titel- und Adressleiste des Browsers sich nicht beim Weiterleiten verändern, kann statt top.location.href die Angabe window.location.href verwendet werden. Dies kann nützlich sein, wenn man eine bestimmte Domain weiterleiten möchte, ohne dass dies gleich offensichtlich ist.
Die sichere Variante
Nahezu “wasserdicht” ist die serverseitige Weiterleitung mit Hilfe der Apache Konfigurationsdatei “.htaccess”.
Mit der “.htaccess”-Datei können Sie Zugriffe auf bestimmte Dateien, wie auch auf Verzeichnisse, bequem und ohne “Zwischenstopp” weiterleiten.
Dazu muss Ihr Webspace jedoch auf einem Apache-Server liegen, dieser ist allerdings weitverbreitet, und Ihr Hoster muss Ihnen den Zugriff per “.htaccess” gestatten.
Der Inhalt dieser Datei sähe bei einer einfachen Weiterleitung dann wie folgt aus, um die gesamte Domain weiterzuleiten:
Redirect / http://www.all4homepages.de
Um einen bestimmten Ordner weiterzuleiten:
Redirect /forum http://forum.all4homepages.de
Für eine einzelne Datei:
Redirect /seite1.html seite2.html
Dabei kann immer eine komplette (externe) Adresse mit http:// oder ein lokaler Pfad als Weiterleitungsziel angegeben werden.
Diese Artikel könnten Sie interessieren:
@-Domains selbst realisieren
Die Konfigurationsdatei .htaccess
Lokalen Webserver einrichten
(CBS | 22.05.02)



Ihr Artikel ist sehr gut gelungen, auch das Thema ist sehr ansprechend, da viele Webmaster auf so etwas zurückgreifen müssen.
Allerdings gibt es eine weitere Art der Weiterleitung die mit PHP realisiert werden kann, die ich in Ihrem Artikel vermisse.
So kann mit dem Befehl
<?php
location:filename.php
?>
z. B. aus einer Datei datei.php zu filename.php weitergeleitet werden.
Richtig,
vielen Dank für Ihre Ergänzung, diese Möglichkeit hatte ich jedoch beim Verfassen des Artikels ausgelassen, da für eine Lösung mit der serverseitigen Programmiersprache PHP einiges vorrausgesetzt wird.
Sie haben aber natürlich Recht, diese Möglichkeit besteht auch zur Weiterleitung zu einem bestimmten Dokument.
Allerdings muss ich Sie etwas verbessern. Der richtige Code muss wie folgt lauten:
<?php
header(“location:seite2.html”);
?>
Dabei ist auch zu beachten, dass vor diesem Befehl keine HTML-Ausgabe (ein sog. Header) erfolgt seien darf.
Eine Einführung in PHP finden Sie auch unter “Profiwissen” in der Rubrik “KnowHow”.
http://all4homepages.de/?rubrik=knowhow&thema=php
Letzte Änderung von Christian Boris Schmidt am 15.09.02, 15:39.
Hallo!
Guter Artikel. Vor zwei Jahren, als ich noch absolut keine Ahnung von Programming hatte, hätte mir dieser Artikel sehr viel weitergeholfen und ich denke, dass es einige Webmaster gibt, die dankbar sind, dass es diesen Artikel gibt.
Habe hierzu auch noch eine kleine Ergänzung zu der JavaScript-Umleitung. Auch hier kann man mit einem Delay umleiten, Angabe in Millisekunden:
<script language=”JavaScript”
type=”text/javascript”>
<!–
setTimeout(“location.href=’http://www.all4homepages.de’,10000″);
//–>
</script>
Hierbei steht die 10000 für zehn Sekunden (10000ms). Dies ist dann sinnvoll, wenn auf dem Dokument noch etwas steht, das zur Information dient und gelesen werden sollte, bevor umgeleitet wird.
Mfg
Jens Hackmann
Hab da noch eine kleine Korrektur zu machen. Die Anführungszeichen sind bei der JavaSkript-Timeout-Weiterleitung nicht korrekt.
Richtig müsste es sein:
setTimeout(“location.href=’http://www.all4homepages.de’”,10000);
Der gesamte Weiterleitungsbefehl kommt in Anführungszeichen und die eigentliche Adresse in Hochkomma.
wenn javascript aber deaktiviert ist, hat das kein zweck.
da ist die einfache weiterleitung mit dem metatag immer noch das beste.
MfG,
Friedrich Fröhlich
Wie immer beim Einsatz von JavaScript ist die Unterstützung des Browsers nötig. Allerdings sollte die Mehrheit der Surfer dies standardgemäß eingestellt haben.
Um auch bei einer Javascript-Lösung sicher zu gehen, dass jeder auf die nächste Seite gelangt, könnte man zusätzlich oder im <noscript>-Tag einen Link ausgeben lassen. So kann bei Bedarf manuell die Seite gewechselt werden.
JavaScript ist in einigen Fällen in so fern geeigneter, da es wesentlich schneller (unmittelbar) weiterleiten kann. Die Meta-Variante benötigt i.d.R. mindestens 1 Sekunde.
Hallo!
<?php
header(“location:seite2.html”);
?>
…ist falsch. Es muss immer das komplette URL inkl. http angegenben werden.
<?php
header(“location: http://www.domain.tld/seite2.html“);
?>
…wäre korrekt.
MfG Markus
Vielen Dank für den Hinweis.
Leider scheint auch der erste Beitrag irgendwie verloren gegangen zu sein… :-8
Letzte Änderung von Christian Boris Schmidt am 05.10.02, 16:16.
Nein, also verloren geht so schnell nichts.. ;-) Die Reihenfolge der Beitrage in diesem Thema war leicht durcheinander geraten. :-8 Wurde aber bereits korrigiert. ;D
Man kann auch Zufallsumleitungen einrichten, praktisch wenn man wechselnden Kontent anbieten möchte, ist allerdings JAVA und der User muss Java aktiviert haben, sollte in jedem Browser funzen.
Hier der Code:
<script type=”text/javascript”>
<!–
var site = new Array(‘deineseite.htm’, ‘deineseite.htm’,'deineseite.htm’); //usw.
var x = Math.floor(Math.random() * site.length);
document.location.href=site[x];
//–>
</script>
<noscript>
<br>
<p>Sorry…!<br>
Der Aufruf von zufälligen Seiten benötigt JavaScript.<br>
Dein Browser unterstützt JavaScript nicht, oder JavaScript ist deaktiviert.
</p>
</noscript>
Ja, interessantes Skript. Wüsste jetzt zwar keinen sinnvollen Einsatz, aber wer weiß… ;-)
PS: Java != JavaScript
Tss. Sinnvoll zum Bleistift, wenn man auf der eigenen Seite innerhalb eines Frames (bspw.) …wechselnden Inhalt beiten möchte. Dat heisst, nicht immer denselben Inhalt anzeigen lassen möchte, sondern mal was zu Webmastertools, mal was zum shoppen, mal was zum Spielen etc. …das fast gleiche skript gibst auch mit Uhrzeitumleitung (da kann man sehr gut Nicht-Jugendfreies auf späte Uhrezeiten verlagern
zu. Ps.: Java…is ja gut…jetzt nim das nit so eng
Das ist eine gute Idee,
vielleicht werden wir das bei
einem neuen Projekt an dem
wir derzeit Arbeiten, demnächst mal einbauen.
Auch ich muss sagen, dass wenn es dies damals
zum Zeitpunkt meiner Html/PHP-Anfänge gegeben hätte,
dann wäre dies für mich auch eine grosse Erleichterung
gewesen.
Allerdings muss ich sagen: Man lernt ja nie aus!
lg
Stefan
Weiterleitung per Meta Tag oder JavaScript bringen nur mehr ärger als sie nützlich sind.
Ich kann nur serverseitige Weiterleitungen empfehlen.
Kleiner Tip für PHP. Darauf achten, dass vor header(“location … noch keine Ausgabe an den Browser erfolgt ist, sonst funkioniert es nicht.
Wie meinst du das Michael?
Es soll noch keine Ausgabe an den Browser erfolgt sein.
Das verstehe ich nicht so ganz.
lg
Stefan
Die Erklärung ist eigenlich ganz einfach:
Sieht der Code z.B. so aus:
<?php
echo “<html>”;
header(“location: http://www.domain.de/“);
….
?>
Funktioniert es nicht. Da du vor dem Header schon etwas versuchst an den Browser zu senden, nämlich mittels dem “echo” Befehl. Das ganze ist auch logisch. Da zuerst der Header verschickt werden muss.
Wollte diesen Hinweis mal geben, da ich schon oft mitbekommen habe, dass das einige Falsch machen.
Ok,
eigentlich hatte ich das mir schon so gedacht.
Aber lieber immer noch mal nachfragen.
Also sehe ich das Richtig:
wenn zum beispiel vor dem
<?php
header(“location: http://www.domain.tld/seite2.html“);
?>
ein Aufruf wie z.B.:
< a href=”http://www.irgendwas.de” >test< /a >
angezeigt werden würde, dann ist das genauso eine
Ausgabe im browser?
Obwohl es wahrscheinlich unwahrscheinlich ist,
dass vor dem Header, eine webadresse angezeigt
werden soll.
lg
Stefan
Letzte Änderung von Stefan Glaus am 16.06.03, 20:41.
@Markus Knittig :
>
>Es muss immer das komplette URL inkl. http
>angegenben werden
>
Relative Pfadangaben wie im Beispiel von CBS sind auch erlaubt ;)
@Stefan Glaus :
Es reicht schon ein Leerzeichen oder eine Leerzeile vor dem “header”-Aufruf (daher muss das “<?php” auch wirklich ganz am Anfang des Skriptes stehen…) !
Ein Server sendet bei Skript-Aufruf zwei verschiedene “Blöcke” hintereinander : zuerst den Header-Teil (enthält z.B. Infos zum Dateityp, Version der Serversoftware etc.) und danach den eigentlichen Inhalt des Dokumentes (= Daten, die der Client, z.B. der Browser anzeigen soll)
Wenn Du also ein Leerzeichen oder Deinen obigen HTML-Link ausgibst, dann bedeutet das, Du möchtest “Inhalt” (also “Block” 2) senden. PHP übermittelt in diesem Fall automatisch vorher noch den Header-Teil (“Block” 1) , (damit auch die Reihenfolge stimmt).
Sind die Header dann erstmal gesendet, können diese nicht mehr nachträglich verändert/gesetzt werden – der Zug ist sozusagen abgefahren ;D
Aha,
nun ist auch für mich klarer und nicht mehr
halb verschleiert.
Vielen Dank für die Ausführungen.
gruss
Stefan