如果您聽說過URL 重定向或 URL 轉(zhuǎn)發(fā),那么您應該熟悉 PHP 重定向。如果不是,或者如果您需要復習,重定向是網(wǎng)頁、表單或網(wǎng)站的轉(zhuǎn)發(fā)或重新路由。例如,您搜索了monsterhost.com/seotool,但卻被發(fā)送或重定向到monsterhost.com/seo。重定向通常用于實現(xiàn)多個目標,包括將特定網(wǎng)頁重新路由到新位置、在站點維護期間或停機或網(wǎng)站備份期間管理網(wǎng)站流量。當您想擺脫“www”時,也會進行重定向。URL 的一部分,修改站點的 URL 結構或?qū)⒂脩粲谰棉D(zhuǎn)發(fā)到不同的網(wǎng)站。
執(zhí)行 PHP 重定向的原因
使用重定向的原因有很多。這些范圍包括在停機或站點維護期間處理網(wǎng)站流量;將特定頁面重新路由到新位置或擺脫“www”。URL 的一部分。如果您希望更改網(wǎng)站的 URL 結構或?qū)⒂脩粲谰棉D(zhuǎn)發(fā)到不同的網(wǎng)站,則需要重定向。
如何進行 PHP 重定向?
設置 PHP 重定向是一個相當簡單的過程,并且標頭功能至關重要。 首先在您要重定向的目錄中創(chuàng)建一個index.php 文件。
使用下面的內(nèi)容來實現(xiàn)這一點。
也可以寫成以下格式:
<?php header("位置:anotherDirectory/anotherFile.php"); ?>
' http://www.redirect.to.url.com/'或anotherDirectory/anotherFile.php”);?>任一文件的部分是您輸入希望用戶重定向到的 URL 的位置。還需要注意的是,文件類型不限于 HTML,范圍可以從 php、perl、python、cgi 到已編譯的 cgi 程序。
PHP 重定向的四個最佳實踐
1. 使用相對 URL
有不同類型的重定向,例如我們在這篇文章中探討的SSL和 PHP。還有用于執(zhí)行這些重定向的不同類型的 URL。這些包括相對和絕對 URL。
絕對 URL 是具有主機名的 URL,而相對 URL 是沒有主機名的 URL。相對 URL 僅在六年前作為 HTTP 的一部分進行了標準化,因此它相當新并且可以在現(xiàn)代瀏覽器中使用。但為了安全起見,在進行重定向時,建議您重定向到絕對 URL。
2. 在向瀏覽器寫入任何內(nèi)容之前調(diào)用 header 函數(shù)
這對于成功的重定向非常重要。瀏覽器必須首先接收 HTTP 標頭才能進行重定向。這甚至可以是 PHP 開始標記之前的空行。不要忘記這一點,否則會導致錯誤消息。
3. 重定向后立即退出腳本
這與其說是一種要求,不如說是一種好的做法。但是很重要的一個。請記住,即使您發(fā)送了標頭,腳本也會繼續(xù)執(zhí)行。這本身似乎沒什么大不了的,但發(fā)生的情況是,盡管腳本正在執(zhí)行,但瀏覽器永遠不會看到重定向后的結果。
4.根據(jù)重定向類型發(fā)送HTTP狀態(tài)碼
有不同類型的重定向。有些像 302 是臨時的,而有些像 301 是永久性的。發(fā)送的狀態(tài)代碼與您的目標重定向保持一致至關重要。
如果未指定,則為 302,即“找到”或“臨時移動”
一般是使用 fore bug 瀏覽器插件生成的。如果您希望臨時重定向,這沒關系,但如果您希望重定向是永久的或其他,這不是好消息。為避免這種情況,請具體說明您的狀態(tài)代碼。
概括
進行重定向的原因有很多。無論您是想在進行維護時迎合您的用戶,還是在對您的網(wǎng)站或單個頁面進行全面檢修時。但無論您的原因是什么,遵循最佳實踐以獲得最佳結果非常重要。