Heim >Backend-Entwicklung >PHP-Tutorial >Redirect-Tutorial in PHP

Redirect-Tutorial in PHP

王林
王林Original
2023-09-01 17:53:051516Durchsuche

Redirect ermöglicht es Ihnen, den Client-Browser auf eine andere URL umzuleiten. Sie können es verwenden, wenn Sie Domänen wechseln, Ihre Site-Struktur ändern oder zu HTTPS wechseln.

In diesem Artikel zeige ich Ihnen, wie Sie mit PHP auf eine andere Seite umleiten. Ich erkläre Ihnen genau, wie PHP-Weiterleitungen funktionieren und zeige Ihnen, was sich hinter den Kulissen abspielt.

Lernen Sie PHP mit kostenlosen Online-Kursen

Wenn Sie PHP lernen möchten, schauen Sie sich unseren kostenlosen Online-Kurs zu PHP-Grundlagen an!

Wie funktioniert die einfache Umleitung?

Bevor wir uns mit den Details der PHP-Umleitung befassen, werfen wir einen kurzen Blick darauf, wie die HTTP-Umleitung tatsächlich funktioniert. Schauen Sie sich das Bild unten an.

Redirect-Tutorial in PHP

Lassen Sie uns herausfinden, was im Screenshot oben vor sich geht:

  • Der Client-Browser fordert eine bestimmte Seite vom Server an. Im obigen Beispiel hat der Client den Inhalt der Datei index.php angefordert.
  • Der Server hat eine Anfrage für die Datei index.php erhalten und möchte den Client darüber informieren, dass die Datei nicht mehr verfügbar ist oder an einen anderen Speicherort verschoben wurde und nach einer neuen Datei suchen soll: new_index.php. PHP. Der Server sendet einen Location-Header mit der neuen URL und einem 301- oder 302-HTTP-Code. Dies sind die HTTP-Codes, die für Weiterleitungen verwendet werden.
  • Wenn der Client-Browser auf einen 301- oder 302-Code stößt, weiß er, dass er eine weitere Anfrage an die neue URL stellen muss, um den Inhalt abzurufen. Im obigen Beispiel wird eine Anfrage zum Abrufen der new_index.php-Datei gestellt.

  • Schließlich sendet der Server den Inhalt der neuen URL.

So funktioniert die grundlegende HTTP-Umleitung. Im nächsten Abschnitt besprechen wir, wie die PHP-Umleitung funktioniert.

Wie Weiterleitungen in PHP funktionieren

Wenn Sie in PHP einen Benutzer von einer Seite auf eine andere umleiten möchten, müssen Sie die Funktion header() verwenden. Mit der Header-Funktion können Sie einen unformatierten HTTP-Standort-Header senden, der die eigentliche Umleitung durchführt, die wir im vorherigen Abschnitt besprochen haben.

So verwenden Sie die Header-Funktion

Werfen wir einen Blick auf die Syntax der header()-Funktion.

header( $header, $replace, $http_response_code )
  • $header: Dies ist die HTTP-Header-Zeichenfolge, die Sie verwenden möchten. In unserem Fall verwenden wir den Header $header:这是您要使用的 HTTP 标头字符串。在我们的例子中,我们将使用 Location zur Weiterleitung.
  • $replace: Dies ist ein optionaler Parameter, der angibt, ob der Header frühere ähnliche Header ersetzen soll.
  • $http_response_code: Es ermöglicht Ihnen, spezifische Antwortcodes zu senden.

Schauen wir uns nun die folgenden Beispiele an, um zu sehen, wie sie zusammenarbeiten.

<?php
// index.php
header("Location: https://www.yoursite.com/new_index.php");
exit();
?>

Wenn das obige Skript ausgeführt wird, wird der Client-Browser zu http://www.yoursite.com/new_index.php umgeleitet. Hinter den Kulissen sendet es rohe HTTP-Header Location zusammen mit einem 302-Statuscode. Der Statuscode 302 wird für temporäre Weiterleitungen verwendet. Wenn Sie jedoch eine dauerhafte Weiterleitung wünschen, können Sie im dritten Parameter einen Statuscode 301 übergeben, wie im folgenden Codeausschnitt gezeigt.

<?php
// index.php
header("Location: http://www.yoursite.com/new_index.php", TRUE, 301);
exit();
?>
Mit

301 Permanent Redirect können Sie Suchbots benachrichtigen, dass die Seite nicht mehr verfügbar ist und durch eine neue ersetzt werden kann.

Warum die Die()Exit()-Funktion nach der Header-Umleitung verwenden?

Aufmerksame Benutzer werden bemerken, dass ich im obigen Beispiel die exit() 函数。事实上,您必须在标头重定向之后立即使用 exit()die()-Funktion verwendet habe, um die Skriptausführung zu stoppen und unerwünschte Ergebnisse zu vermeiden.

Es empfiehlt sich also immer, nach der Umleitung eine dieser Funktionen zu nutzen.

Berühmter Fehler: Header gesendet

Wenn Sie ein erfahrener PHP-Programmierer sind, bin ich sicher, dass Ihnen dieser berühmte PHP-Fehler irgendwann in Ihrer täglichen PHP-Entwicklung begegnet ist. Für Anfänger ist es jedoch sehr ärgerlich, auf diesen Fehler zu stoßen, da er schwierig zu debuggen und zu beheben ist. In den meisten Fällen wissen sie nicht einmal, dass es sich um eine Header-Umleitung handelt.

Als Faustregel gilt: Wenn Sie die header()-Funktion in einem Skript verwenden, müssen Sie sicherstellen, dass zuvor keine Ausgabe gesendet wird. Andernfalls meldet sich PHP mit einem „Header Sent“-Fehler. Dies kann auch dann passieren, wenn Sie vor Verwendung der Header-Funktion ein Leerzeichen senden.

Fazit

In diesem Artikel haben wir eine der wichtigen Funktionen der PHP-Programmierung besprochen: die Umleitung. Zuerst haben wir uns die Grundlagen der HTTP-Umleitung angesehen und dann gezeigt, wie sie in PHP funktioniert.

Die besten PHP-Skripte auf CodeCanyon

Entdecken Sie Tausende der besten und nützlichsten PHP-Skripte, die jemals auf CodeCanyon erstellt wurden. Mit einer günstigen Einmalzahlung können Sie eines dieser hochwertigen WordPress-Themes erwerben und das Website-Erlebnis für Sie und Ihre Besucher verbessern.

Redirect-Tutorial in PHP

Hier sind einige der meistverkauften und aufstrebenden PHP-Skripte, die 2020 auf CodeCanyon verfügbar sind.

  • Redirect-Tutorial in PHP

  • Redirect-Tutorial in PHP

  • Redirect-Tutorial in PHP

  • Redirect-Tutorial in PHP

  • Redirect-Tutorial in PHP

  • Das obige ist der detaillierte Inhalt vonRedirect-Tutorial in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn