PHP-Weiterleitungen sind ein unglaublich nützliches Tool, können aber auch gefährlich sein, wenn sie nicht richtig implementiert werden.
Wenn Sie unsere Einführung in PHP 7.4 und unseren Leitfaden zum Erstellen einer Website in 5 Minuten gelesen haben, wissen Sie, dass das Header() Die Funktion kann verwendet werden, um einen Benutzer einfach auf eine andere Seite umzuleiten. In Wirklichkeit ist die Verwendung dieser Funktion jedoch nicht so einfach, wie es scheint. In dieser Anleitung zeigen wir Ihnen, wie Sie eine PHP-Umleitung durchführen, die später keine großen Probleme verursacht.
Die grundlegende Methode für eine PHP-Umleitung
In den meisten Anleitungen erfahren Sie, dass Sie zum Durchführen einer PHP-Umleitung einfach die verwenden können Header() oben auf ihren Seiten. Verwenden Sie dazu die Funktion zum Übermitteln einer neuen URL, etwa so:
header('Location: '.$newURL.php);
Diese Header-Funktion sollte vor der Übergabe von HTML oder Text an die Browser Ihrer Benutzer platziert werden, sodass sie sich ganz oben auf der Seite befinden sollte. Das heißt, Sie müssen vorher kommen -Anweisung, vor jedem Java- und vor jedem PHP-Code. Anschließend werden Benutzer zur neuen URL weitergeleitet.
Auch wenn es einfach erscheinen mag, wenn es darum geht Header() Bei dieser Funktion kann die Einfachheit des Codes Entwickler in falscher Sicherheit wiegen. Sehen wir uns also an, wie Sie diese Funktion richtig nutzen können.
Die() und Exit()
Zunächst müssen Sie die verwenden sterben() entweder Ausfahrt() Modifikator jedes Mal, wenn Sie eine Weiterleitung verwenden. Kurz gesagt besteht das Problem darin, dass Crawler und Bots Header ignorieren können, wodurch die Seite, von der Sie dachten, dass Sie sie umleiten würden, für sie vollständig zugänglich wird. Wenn Sie mit anderen Worten eine Header-Weiterleitung verwenden, um eine bestimmte Seite zu schützen, bietet Ihnen diese keinen Schutz.
Deshalb sollten Sie die Verarbeitung des Rests der Seite stoppen, falls die Weiterleitung ignoriert wird. Der Weg, dies zu tun, besteht darin, hinzuzufügen sterben() entweder Ausfahrt() nach deiner Weiterleitung:
header("Location: .$newURL.php");
die();
Relative und absolute URLs
Lassen Sie uns als Nächstes über relative und absolute URLs in Weiterleitungen sprechen. RFC 7231 erlaubt Ihnen die Verwendung beider, Sie müssen jedoch bei der Verwendung relativer Weiterleitungen sehr vorsichtig sein. Dies liegt daran, dass einige Website-Ersteller PHP-Seiten sortieren und umbenennen. Das bedeutet, dass Sie möglicherweise alle Ihre Weiterleitungen beschädigen, wenn Sie über einen Website-Builder an Ihrem PHP arbeiten.
Leider gibt es derzeit keine wirkliche Möglichkeit, dieses Problem zu beheben, es sei denn, Sie behalten einen sorgfältigen Überblick darüber, wohin Ihre Weiterleitungen führen.
Statuscodes
Das dritte Problem bei Standard-PHP-Weiterleitungen besteht darin, dass der PHP-„Standort“-Operator immer noch den HTTP-Code 302 zurückgibt. Das sollten Sie nicht zulassen, da viele Webbrowser diesen Code auf eine Weise implementieren, die völlig im Widerspruch zu seinem eigentlichen Code steht sollen funktionieren: Sie verwenden im Wesentlichen den GET-Befehl, anstatt eine „echte“ Weiterleitung durchzuführen.
Daher besteht die beste Vorgehensweise beim Erstellen von PHP-Weiterleitungen darin, den zurückgegebenen Code anzugeben. Leider ist der richtige Code umstritten. HTTP 301 weist auf eine permanente Weiterleitung hin, die zu Problemen bei der Wiederherstellung Ihrer Originalseite führen kann. Leider wird HTTP 303 von vielen Browsern als „andere“ verstanden und kann bei der Indexierung Ihrer Seite durch Suchmaschinen zu Problemen führen.
In der Praxis verwenden Sie HTTP 303, bis diese Situation behoben ist.
Überprüfen Sie die Dokumentation
Über die oben genannten grundlegenden Vorsichtsmaßnahmen hinaus sollten Sie sich die Zeit nehmen, die Dokumentation zur Verwendung von PHP-Weiterleitungen zu lesen, bevor Sie sie veröffentlichen. Sie sollten das PHP-Handbuch lesen, um sicherzustellen, dass Sie verstehen, was Sie tun, und auch die W3C-Dokumentation lesen, um sicherzustellen, dass Sie die Best Practices befolgen.
Und während Sie Ihre Lektüre nachholen, sollten Sie eine Website auch vor häufigen Schwachstellen schützen: Wenn Sie bereits in der Lage sind, PHP-Weiterleitungen verwenden zu müssen, muss die Sicherheit Ihrer Website wahrscheinlich überprüft werden.

Andere Methoden
Angesichts all dieser Probleme fragen Sie sich wahrscheinlich, warum Sie eine PHP-Weiterleitung verwenden sollten. Das ist eine berechtigte Frage. Obwohl PHP-Weiterleitungen im Allgemeinen schneller laufen als andere Arten von Weiterleitungen und daher ein wichtiges Instrument zur Verbesserung der Website-Geschwindigkeit sein können, stehen auch andere Optionen zur Verfügung.
Hierfür gibt es zwei Hauptansätze. Sie können den HTML-Code verwenden Element, um vom HTML-Teil Ihrer Seite umzuleiten, oder verwenden Sie JavaScript. Der erste Ansatz: nutzen es würde so aussehen:
Der zweite Ansatz mit JavaScript ist etwas eleganter und sieht auf jeden Fall professioneller aus:
window.location.replace("http://newpage.php/");
Beide Ansätze laufen etwas langsamer als ein sofortiger Header() umleiten, sind aber wohl flexibler.
Ein letztes Wort
Während das Befolgen der oben genannten Schritte bedeuten sollte, dass Ihre PHP-Weiterleitungen sicher funktionieren, ist es wahrscheinlich an der Zeit, die Struktur Ihrer Website zu überdenken, wenn Sie in der Lage sind, mehrere PHP-Weiterleitungen zu verwenden.
Dafür gibt es mehrere gute Gründe. Erstens sind nicht alle Webserver gleich. Wenn Sie alle Ihre Besucher auf einem Umweg über Ihre Website schicken, wirkt sich dies auf deren Leistung aus. Dies kann durch die Verwendung eines erschwinglichen Webhosts bis zu einem gewissen Grad verbessert werden, jedoch nur bis zu einem gewissen Punkt.
Der zweite Grund besteht darin, dass die Seite, von der Sie umleiten, möglicherweise Daten über Ihre Besucher sammelt, ohne dass Sie es merken, insbesondere wenn Sie Webanalysesoftware verwenden, um die Leistung Ihrer Website zu verfolgen. In unserer Welt nach der DSGVO könnte das erhebliche Konsequenzen haben.
Zusammenfassend gilt: Seien Sie vorsichtig mit PHP-Weiterleitungen, verwenden Sie sie richtig und verwenden Sie sie nur dort, wo und wenn es unbedingt erforderlich ist.
