de.comp.lang.php.* FAQ

27.9. Wie erzeuge ich mit PHP einen Redirect auf eine andere Seite?

Keywords: Redirect | Header | 302 | HTTP | URL

Antwort von Kristian Köhntopp

Um einen Redirect zu erzeugen, muss man den HTTP-Header Location senden und dort die neue URL angeben. Zum Senden von HTTP-Headerzeilen verwendet man die PHP-Funktion header() . Diese Funktion kann nur dann verwendet werden, wenn PHP noch keinen HTTP-Body ausgegeben hat, wenn also weder Fehlermeldungen, Leerzeilen, Leerzeichen noch HTML ausgegeben worden sind.

// Redirect-Ziel
header("Location: http://www.ziel.de/zielseite.html");

Wichtig: RFC 2616 schreibt im Abschnitt 14.30 Location eine sog. absoluteURI vor, d.h. die Adresse muss mit http:// beginnen, relative Anweisungen à la "Location: index.html" sind nicht standardkonform! Manche Browser sind zwar so tolerant, relative Angaben zu verstehen und in der Lage, selbständig die absolute Adresse zu ermitteln, aber verlassen kann man sich darauf nicht; die PHP-Funktion fopen() z.B. scheitert an derart ungültigen Location-Angaben.

Valid HTML 4.01! Valid CSS!

27.9. Wie erzeuge ich mit PHP einen Redirect auf eine andere Seite?
http://www.php-faq.de/q/q-http-redirect.html
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team