Thomas Luethi: Weiterleitung

Beitrag lesen

Hallo,

Als Ergaenzung zum bisher geschriebenen:

Ich möchte wenn meine Startseite aufgerufen wird mit PHP auf einen Unterordner umleiten.

header("Location: http://www.example.com/unterordner/");
macht eine HTTP-302-Umleitung.
Wichtig dabei: die URL muss absolut sein, also mit http:// anfangen.
http://www.php.net/manual/de/function.header.php

Nun wollte ich mal fragen ob das irgendwelche Nachteile haben kann.

Eigentlich nicht.
Bereits in HTTP 1.0 (aus dem Jahr 1996) sind 302-Header festgelegt.
Wenn eine Software _das_ nicht kann, dann hat sie noch ganz andere
Probleme, z.B. mit virtuellen Hosts (mehrere Domains auf einer IP),
und ist im heutigen Internet nicht mehr zu gebrauchen.

Gibt es da z.B. Probleme bei manchen Browsern?

Ganz selten, z.B. wenn der Benutzer es absichtlich abgeschaltet hat.
Fuer diesen Fall sollte man gemaess der HTTP 1.1 Spezifikation
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.3
_nach_ dem Header noch eine kurze HTML-"Datei" mit einem normalen
Link auf die Folgeseite ausgeben.

Die "ideale Loesung" (die sogar valide ist) geht also so:

<?php
header("Location: http://www.example.com/unterordner/");
print("<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">\n");
print("<title>Umleitung</title>\n");
print("<p><a href='http://www.example.com/unterordner/'>Hier geht's weiter...</a></p>\n");
?>

Wie ist das mit Meta Tags? Können die auch in die index.html oder müssen die dann nur in den Unterordner?

Welche "Meta Tags" meinst Du?
Das Umleitungs-Zeugs
http://selfhtml.teamone.de/html/kopfdaten/meta.htm#weiterleitung
solltest Du eigentlich nicht benutzen, wenn Du schon PHP hast,
und wenn, dann nur mit einer Wartezeit groesser als 0, z.B. mit 5 oder 10 Sekunden,
sonst machst Du den Leuten den Zurueck-Knopf bzw. die History kapputt.

Gruesse,

Thomas