首頁  >  文章  >  後端開發  >  PHP中的重定向教學

PHP中的重定向教學

王林
王林原創
2023-09-01 17:53:051428瀏覽

重定向可讓您將用戶端瀏覽器重新導向到不同的 URL。您可以在切換網域、變更網站結構或切換到 HTTPS 時使用它。

在本文中,我將向您展示如何使用 PHP 重定向到另一個頁面。我將準確地解釋 PHP 重定向的工作原理並向您展示幕後發生的情況。

透過免費線上課程學習 PHP

如果您想學習 PHP,請查看我們的 PHP 基礎知識免費線上課程!

基本重定向如何運作?

在我們深入了解 PHP 重定向的細節之前,讓我們先快速了解 HTTP 重定向到底是如何運作的。看一下下圖。

PHP中的重定向教學

讓我們了解上面的螢幕截圖中發生了什麼:

  • 客戶端瀏覽器向伺服器請求特定頁面。在上面的範例中,客戶端請求了 index.php 檔案的內容。
  • 伺服器收到 index.php 檔案要求,並希望通知客戶端該檔案不再可用或已移至其他位置,並且應尋找新檔案:new_index.php。 PHP。伺服器發送帶有新 URL 的 Location 標頭以及 301 或 302 HTTP 代碼。這些是用於重定向的 HTTP 程式碼。
  • 當客戶端瀏覽器遇到 301 或 302 程式碼時,它知道必須向新 URL 發起另一個請求才能取得內容。它發起一個請求來取得上例中的 new_index.php 檔案。

  • 最後,伺服器傳送新網址的內容。

這就是基本 HTTP 重新導向的工作原理。在下一節中,我們將討論 PHP 重定向的工作原理。

PHP 中的重定向如何運作

在 PHP 中,當你想要將使用者從一個頁面重新導向到另一個頁面時,你需要使用 header() 函數。 header 函數可讓您傳送原始 HTTP 位置標頭,該標頭執行我們在上一節中討論的實際重定向。

如何使用標頭功能

讓我們來看看 header() 函數的語法。

header( $header, $replace, $http_response_code )
  • $header:這是您要使用的 HTTP 標頭字串。在我們的例子中,我們將使用 Location 標頭進行重定向。
  • $replace:這是一個可選參數,指示標頭是否應替換先前的類似標頭。
  • $http_response_code:它允許您發送特定的回應代碼。

現在,讓我們來看看以下範例,了解它們是如何協同工作的。

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

執行上述腳本時,會將用戶端瀏覽器重新導向至 http://www.yoursite.com/new_index.php。在後台,它會傳送原始 HTTP Location 標頭以及 302 狀態碼。 302狀態碼用於暫時重定向,但如果您想要永久重定向,可以在第三個參數中傳遞301狀態碼,如下列程式碼片段所示。

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

301 永久重定向允許您通知搜尋機器人該頁面不再可用,可以用新頁面替換。

為什麼要在標頭重定向後使用 Die()Exit() 函數?

眼尖的使用者應該會注意到,我在上面的範例中使用了 exit() 函數。事實上,您必須在標頭重定向之後立即使用 exit()die() 函數來停止腳本執行並避免任何不良結果。

因此,始終建議在重定向後使用這些函數之一。

著名錯誤:標頭已發送

如果您是一位經驗豐富的 PHP 程式設計師,我確信您在日常 PHP 開發中的某個時候遇到過這個著名的 PHP 錯誤。然而,對於初學者來說,遇到這個錯誤確實很煩人,因為它很難調試和修復。在大多數情況下,他們甚至不知道這是由標頭重定向引起的。

經驗法則是,當您在腳本中使用 header() 函數時,您需要確保在它之前沒有發送任何輸出。否則,PHP 將抱怨“標頭已發送”錯誤。即使您在使用標頭函數之前發送了一個空格,也可能會發生這種情況。

結論

在這篇文章中,我們討論了 PHP 程式設計的重要功能之一:重定向。首先,我們了解了 HTTP 重定向的基礎知識,然後示範了它在 PHP 中的工作原理。

CodeCanyon 上最好的 PHP 腳本

探索 CodeCanyon 上有史以來創建的數千個最好、最有用的 PHP 腳本。透過低成本的一次性付款,您可以購買這些高品質的 WordPress 主題之一,並改善您和您的訪客的網站體驗。

PHP中的重定向教學

#以下是 2020 年 CodeCanyon 上提供的一些最暢銷和嶄露頭角的 PHP 腳本。

  • PHP中的重定向教學

  • PHP中的重定向教學

  • PHP中的重定向教學

  • PHP中的重定向教學

  • PHP中的重定向教學

  • #

    以上是PHP中的重定向教學的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    陳述:
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn