de en it ar de de de de en ru de en fr en de en ru de en en en en de en en de de en en en fr en de de de ru en de de en en de de en en de de de de de de de en de fr de de it it en de en nb en it it de de en nl de en fr en fr en en en en en sv fr de de fr fr fr sv en fr en ja fr de fr es nb fr de en en sv de de fr en fr it fr de en fr en ca de de nb en de
Dieser Artikel bietet eine Alternative zum Redirect per Apache RewriteRule oder ähnlichen Verfahren anderer Webserver. Eine weniger komplexe und trotzdem sehr mächtige Möglichkeit der Weiterleitung bietet PHP. Mit Hilfe der Funktion header() lassen sich Zeilen direkt in den HTTP-Header einfügen, sodass der HTTP-Response direkt beeinflusst werden kann. Damit bleiben Sie vom Werbserver unabhängig und haben mehr Einflussmöglichkeiten.
Die Funktion exit() bewirkt, dass das Parsen des aktuellen Dokumentes abgebrochen wird. Dies spart nicht nur Ressourcen des Servers. Auch sorgt der Abbruch dafür, dass kein Body erzeugt wird. Für spezielle Clients, die der Weiterleitung nicht folgen können oder wollen, kann aber ein Body erzeugt werden:
echo " Dies ist eine Weiterleitung zu ";
echo " www.emscherwasser.de/kontakt/ . \n";
Wenn benutzerdefinierte Header gesendet werden sollen, muss allerdings sicher gestellt sein, dass keine Ausgabe vor dem Senden der Header erfolgt. Die sicherste Methode ist, das PHP-Skript so zu schreiben, dass die header()-Funktion vor jeglicher Ausgabe erfolgt. Bedenken Sie, dass ein Whitespace außerhalb der Markierungen   ebenfalls eine Ausgabe darstellt!
Standardmäßig wird auch hier der Statuscode 302 versendet. Wollen Sie eine permanente Weiterleitung, so fügen Sie in obiges Skript noch die folgende Zeile ein:
[code lang=“php“ toolbar=“false“ gutter=“false“]
Auch ist zu beachten, dass HTTP/1.1 einen absoluten URI erwartet, auch wenn viele Clients mit relativen URIs umgehen können. Der folgende Header ist also unzulässig:
[code lang=“php“ toolbar=“false“ gutter=“false“]
Falls Sie innerhalb des PHP-Skriptes nicht wissen, auf welcher Domain das Skript läuft, können Sie die Server-Variable $_SERVER["HTTP_HOST"] nutzen, um einen zulässigen Header zu erzeugen:
[code lang=“php“ toolbar=“false“ gutter=“false“]
Tags: forward, header, http, location, PHP, status, statuscode, weiterleitung
Dieser Artikel wurde am 29. Dezember 2004 um 09:26 Uhr geschriebenund ist abgelegt unter . Kommentare zu diesem Artikel können über diesen RSS-2.0-Feed abonniert werden. Sie können einen Kommentar schreiben oder ein Trackback von Ihrer Webseite hinterlassen.