Weiterleitung zu einer anderen Seite

hofmannc11

hofmannc11

der der mit dem Tux tanzt
Hallo, ich bin mir nicht sicher on das hier das richtige Forum ist, aber ich poste einfach mal hier :)

Also ich möchte mit html eine Weiterleitung realisieren und habe folgenden code genommen:

<html>
<head>
<script language="Javascript">
location.href="seite2.php";
</script>
</head>

<body>

<a href="seite2.php">Keine weiterleitung? Klick hier!</a>
</body>
</html>

jetzt bin ich mir aber nicht sicher ob das wirklich die beste art ist. Gibt es eine möglichkeit eine Weiterleitung zu realisieren, welche mit so gut wie allen Browsern läuft?
 
<html>
<head>
...
<meta http-equiv="refresh" content="1; URL=seite2.php">
</head>
...

das leitet dich dann nach 1 sekunde weiter...kannste natürlich einstellen wann der weiterleiten soll!
 
Danke, funktioniert genau so wie ich wollte :)
 
Header-Umleitung mit PHP
PHP:
<?php
	header( "Location: http://www.doomain.com/page2.html");
?>
 
Sowas geht auch mit Apache-Directiven, falls es sich um eine *statische* Weiterleitung handelt. Dazu beispielsweise in einer Datei namens .htaccess einen Eintrag ähnlich diesem hier vornehmen (aus der Apache Referenz):
Code:
 Redirect permanent /one http://example.com/two
Siehe: http://httpd.apache.org/docs/2.2/mod/mod_alias.html#redirect

Mit der Directive RedirectMatch kann man auch ganz nette Sachen machen:
http://httpd.apache.org/docs/2.2/mod/mod_alias.html#redirectmatch

Das gute an diesen beiden Möglichkeiten ist, das (wie auch im php-Beispiel von lolomat) die Umleitung per http geschieht. Das versteht wirklich jeder Browser. Außerdem werden diese beiden Direktiven durch das Modul mod_alias zur Verfügung gestellt und sollten eigentlich bei jedem Provider der einen Apache Webserver verwendet zur Verfügung stehen.

Oder vielleicht auch mit mod_rewrite. Aber das habe ich glaube ich schon mal ausprobiert und war nicht erfolgreich, da das Modul bei meinem Provider nicht installiert war:
http://httpd.apache.org/docs/2.2/misc/rewriteguide.html
 
Wenn wir schon bei Apache Derektiven und htaccess sind, mit einer einfachen rewrite Rule kannst du jeden Zugriff auf die index.html auch Umleiten.
Ist aber eher umständlich, der refresh in den Meta tags ist der beste Weg das zu lösen.
 
In diesem Fall bin ich anderer Meinung. Sicherlich ist dieses Meta-Tag einfach zu verwenden. Man kann sogar als timeout '0' angegeben, um die Weiterleitung noch zu beschleunigen. Trotzdem ist von dieser Methode abzuraten. Geht man so vor, bedeutet dies, das der Browser erst die Weiterleitungsseite lädt, und dann die Zielseite. Das ist etwas völlig anderes als eine Umleitung.

Werden dagegen vom Server die entsprechenden http-Header gesendet, wird nur die Zielseite geladen. Nun denkt man vielleicht, wenn man die Umleitungsseite nicht mit unnützem HTML-Code vollstopft, sollte das egal sein. Aber es gibt noch einen Unterschied. Den HTTP-Redirect, versteht der Browser als Umleitung, die Umleitung per Refresh nicht.

Kleines Beispiel. Es gibt drei Dokumente: eins.html, zwei.html, drei.html. Die Seite zwei.html leitet per Meta-Tag (am besten timeout '0' ;-) ) an drei.html weiter. Wir besuchen zuerst die Seite eins.html. Nun rufen wir die Seite zwei.html auf, die uns sofort an drei.html weiterleitet. Jetzt möchten wir wieder zurück auf eins.html und betätigen den zurück-Button unseres Browsers. Dieser bringt uns aber nicht auf eins.html sondern auf zwei.html, da dies die Seite war, die wir uns vor drei.html "angesehen" haben. Von dort werden wir wieder an drei.html weitergeleitet. So haben wir also den zurück-Button unseres Besuchers "kaputt gemacht". Das gehört sich nicht.

Siehe dazu auch die Empfehlung des W3-Consortiums:
http://www.w3.org/QA/Tips/reback

David
 
Desweiteren fängst du so deine Besucher in einer Endlosschleife mit dem Histroy Button. Hinzu kommt, das viele die automatische weiterleitung per Meta blockieren. Ich gehöre auch dazu ;)

//edit: och, das mit dem Button steht ja schon da oben :D
 
Kommt das aber nicht darauf an, ob man überhaupt den Server in der Hand hat oder nur das HTML-Verzeichnis?

Ok, das ist zwar heute vermutlich selten, aber die Weiterleitung über Apache-Direktiven hat man wohl doch ab und zu nicht in der Hand....

Da ist der Meta-Tag wohl die gängigste Methode: Wenn / solange er nicht greift, wird der Link eben angezeigt. Das sieht man doch sehr oft bei Downloads.. (Weiterleitung zum Mirror z.B.) Dafür ist der Tag doch immerhin da?

Ich würde es in dem Falle eher damit als mit Javascript machen, das ist evtl sogar auch ausgeschaltet, aber wenn dann der Link kommt, ist auch gut. Der Metatag ist aber immerhin dafür eben vorgesehen, und wenn das jemand nicht will, ist das nicht schlecht sondern gut, oder? Dann muß derjenige eben klicken. Genau das will er doch! Oder eben doch nicht, hauptsache *er* leitet dann weiter und nicht die Seite.

Es gibt auch immer noch Leute die machen einfach ein Frameset auf mit einem Frame von 100% Bildschirmfläche und laden da die 2. Seite rein, aber die Option kommentiere ich mal nicht..
 
Zuletzt bearbeitet:
Header-Umleitung mit PHP
PHP:
<?php
	header( "Location: http://www.doomain.com/page2.html");
?>
Es muss so heissen:
PHP:
<?php
	header( "Location: http://www.doomain.com/page2.html"); exit();
?>
Sonst kann es zu fehlern kommen, wenn nach dem Header noch was kommen sollte.
 
Kommt das aber nicht darauf an, ob man überhaupt den Server in der Hand hat oder nur das HTML-Verzeichnis?
Nein, die Apache-Direktiven kannst Du in einer Datei names .htaccess in Deinem Verzeichnis speichern.
 
Nein, die Apache-Direktiven kannst Du in einer Datei names .htaccess in Deinem Verzeichnis speichern.
Aber doch nur, wenn AllowOverride in der Hauptkonfiguration das zuläßt... wenn nicht, müßtest du es da eintragen, was du aber dann nicht kannst.
 

Ähnliche Themen

NGINX bietet intern abgerufene Seiten nur zum Download an, extern geht's

Nginx als Reverse Proxy für Nextcloud und Emby

CentOS 5.8 –SQL Abfrage– HTML wird generiert und daraus müssen mehrere Mails versendet werden

Problem mit SESSION

Windows clients können nicht mehr auf lange laufendes System zugreifen

Zurück
Oben