在php中,302不是錯誤,而是HTTP響應狀態(tài)碼,意思為“臨時重定向”,表示被訪問頁面因為各種需要被臨時跳轉(zhuǎn)到其他頁面;可利用header()來實現(xiàn)302跳轉(zhuǎn),語法“header('Location: 跳轉(zhuǎn)url',true,302)”。
本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版、DELL G3電腦
302 代表暫時性轉(zhuǎn)移(Temporarily Moved ),是HTTP響應狀態(tài)碼并不是錯誤。
302是臨時重定向的意思,表示被訪問頁面因為各種需要被臨時跳轉(zhuǎn)到其他頁面。
在php中,可以利用header()來實現(xiàn)302跳轉(zhuǎn)。
有兩種語法格式:
-
語法格式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(重定向)響應狀態(tài)碼
要完成請求,需要進一步操作。通常,這些狀態(tài)碼用來重定向。Google 建議您在每次請求中使用重定向不要超過 5 次。您可以使用網(wǎng)站管理員工具查看一下 Googlebot 在抓取重定向網(wǎng)頁時是否遇到問題。診斷下的網(wǎng)絡(luò)抓取頁列出了由于重定向錯誤導致 Googlebot 無法抓取的網(wǎng)址。
-
300(多種選擇): 針對請求,服務(wù)器可執(zhí)行多種操作。服務(wù)器可根據(jù)請求者 (user agent) 選擇一項操作,或提供操作列表供請求者選擇。
-
301(永久移動): 請求的網(wǎng)頁已永久移動到新位置。服務(wù)器返回此響應(對 GET 或 HEAD 請求的響應)時,會自動將請求者轉(zhuǎn)到新位置。您應使用此代碼告訴 Googlebot 某個網(wǎng)頁或網(wǎng)站已永久移動到新位置。
-
302(臨時移動): 服務(wù)器目前從不同位置的網(wǎng)頁響應請求,但請求者應繼續(xù)使用原有位置來響應以后的請求。此代碼與響應 get 和 head 請求的301代碼類似,會自動將請求者轉(zhuǎn)到不同的位置,但不應使用此代碼來告訴googlebot某個網(wǎng)頁或者網(wǎng)站已經(jīng)移動,因為googlebot會繼續(xù)抓取原有位置并編制索引。
-
303(查看其它位置): 請求者應當對不同位置使用單獨的 get 請求來檢索響應時,服務(wù)器返回此代碼。對于出head之外的所有請求,服務(wù)器會自動轉(zhuǎn)到其它位置;
-
304(未修改): 自從上次請求后,請求的網(wǎng)頁未修改過。服務(wù)器返回此響應時,不會返回網(wǎng)頁內(nèi)容;如果網(wǎng)頁自請求者上次請求后再也沒有更改過,應將服務(wù)器配置為返回此響應(稱為if-modified-Since HTTP標頭)。服務(wù)器可以告訴 googlebot 自從上次抓取后網(wǎng)頁沒有變更,進而節(jié)省帶寬和開銷。
-
305(使用代理): 請求者只能使用代理訪問請求的網(wǎng)頁。如果服務(wù)器返回此響應,還表示請求者應使用代理。
-
307(臨時重定向): 服務(wù)器目前從不同位置的網(wǎng)頁響應請求,但請求者應該繼續(xù)使用原有位置來響應以后的請求,此代碼與響應 get 和 head 請求的<a href=""></a>代碼類似,會自動將請求者轉(zhuǎn)到不同的位置,但不應該 告訴googlebot 某個頁面或者網(wǎng)站已經(jīng)移動,因為 googlebot 會繼續(xù)抓取原有位置并編制索引。
PHP header 的7種用法
1. 跳轉(zhuǎn)頁面
header('Location:'.$url); //Location和":"之間無空格。
2. 聲明content-type
header('content-type:text/html;charset=utf-8');
3. 返回response狀態(tài)碼
header('HTTP/1.1 404 Not Found');
4. 在某個時間后執(zhí)行跳轉(zhuǎn)
header('Refresh: 10; url=http://www.php.cn/'); //10s后跳轉(zhuǎn)。
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. . 執(zhí)行http驗證
header('HTTP/1.1 401 Unauthorized'); header('WWW-Authenticate: Basic realm="Top Secret"');
7. 執(zhí)行下載操作
header('Content-Type: application/octet-stream'); //設(shè)置內(nèi)容類型 header('Content-Disposition: attachment; filename="example.zip"'); //設(shè)置MIME用戶作為附件 header('Content-Transfer-Encoding: binary'); //設(shè)置傳輸方式 header('Content-Length: '.filesize('example.zip')); //設(shè)置內(nèi)容長度
推薦學習:《PHP視頻教程》