在php中,302不是錯誤,而是HTTP回應狀態碼,意思是“暫時重定向”,表示被存取頁面因為各種需要被暫時跳到其他頁面;可利用header()來實現302跳轉,語法「header('Location: 跳轉url',true,302)」。
本教學操作環境:windows7系統、PHP7.1版、DELL G3電腦
302 代表暫時性轉移(Temporarily Moved ),是HTTP回應狀態碼並不是錯誤。
302是暫時重定向的意思,表示被存取頁面因為各種需要被暫時跳到其他頁面。
在php中,可以利用header()來實現302跳躍。
有兩種語法格式:
語法格式1:
header('HTTP/1.1 302 Moved Permanently'); header('Location: https://www.php.cn');
#語法格式2:
header('Location: https://www.php.cn', true, 302);
額外再提一句,如果要自適應HTTPS/HTTP的話,這樣就可以了:
header('Location: //www.php.cn', true, 302);
#擴充知識:
HTTP--3xx(重定向)回應狀態碼
要完成請求,需要進一步操作。通常,這些狀態碼用來重定向。 Google 建議您在每次請求中使用重定向不要超過 5 次。您可以使用網站管理員工具查看 Googlebot 在抓取重新導向網頁時是否遇到問題。診斷下的網頁抓取頁列出了由於重定向錯誤導致 Googlebot 無法抓取的網址。
300(多種選擇): 針對請求,伺服器可執行多種操作。伺服器可根據請求者 (user agent) 選擇一項操作,或提供操作清單供請求者選擇。
301(永久移動): 請求的網頁已永久移至新位置。伺服器傳回此回應(對 GET 或 HEAD 請求的回應)時,會自動將請求者轉到新位置。您應該使用此程式碼告訴 Googlebot 某個網頁或網站已永久移動到新位置。
302(暫時移動): 伺服器目前從不同位置的網頁回應請求,但請求者應繼續使用原有位置來回應以後的請求。此程式碼與回應get 和head 要求的301程式碼類似,會自動將請求者轉到不同的位置,但不應使用此程式碼來告訴googlebot某個網頁或網站已經移動,因為googlebot會繼續抓取原有位置並編制索引。
303(查看其它位置): 請求者應對不同位置使用單獨的 get 請求來檢索回應時,伺服器傳回此程式碼。對於出head之外的所有請求,伺服器會自動轉到其它位置;
304(未修改): 自從上次請求後,請求的網頁未修改過。伺服器傳回此回應時,不會返回網頁內容;如果網頁自請求者上次請求後再也沒有更改過,則應將伺服器設定為傳回此回應(稱為if-modified-Since HTTP標頭)。伺服器可以告訴 googlebot 自從上次抓取後網頁沒有變更,進而節省頻寬和開銷。
305(使用代理): 請求者只能使用代理程式存取請求的網頁。如果伺服器傳回此回應,也表示請求者應使用代理程式。
307(暫時重定向): 伺服器目前從不同位置的網頁回應請求,但請求者應該繼續使用原有位置來回應以後的請求,此程式碼與回應get 和head 要求的程式碼類似,會自動將請求者轉到不同的位置,但不應該告訴googlebot 某個頁面或網站已經移動,因為googlebot 會繼續抓取原有位置並編製索引。
PHP header 的7種用法
#1. 跳到頁面
header('Location:'.$url); //Location和":"之间无空格。
2. 宣告content-type
header('content-type:text/html;charset=utf-8');
3. 返回response狀態碼
header('HTTP/1.1 404 Not Found');
4. 在某個時間後執行跳躍
header('Refresh: 10; url=http://www.php.cn/'); //10s后跳转。
5. 控制瀏覽器快取
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache");
6. .執行 http驗證
header('HTTP/1.1 401 Unauthorized'); header('WWW-Authenticate: Basic realm="Top Secret"');
7.執行下載操作
header('Content-Type: application/octet-stream'); //设置内容类型 header('Content-Disposition: attachment; filename="example.zip"'); //设置MIME用户作为附件 header('Content-Transfer-Encoding: binary'); //设置传输方式 header('Content-Length: '.filesize('example.zip')); //设置内容长度
推薦學習:《PHP影片教學》
以上是php中302是什麼錯誤的詳細內容。更多資訊請關注PHP中文網其他相關文章!