亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

使用PHP進行HTTP重定向(301,302)

2024-09-04 11:50:18
字體:
來源:轉載
供稿:網友

在Google里搜“PHP 重定向”,這篇日志的排名在第四。但是這篇寫得實在太爛了…重寫一篇…

什么是HTTP重定向?

當你訪問www.yegle.net時,地址欄的地址會自動變成yegle.net。當你訪問ye.gl的時候,地址欄的地址會變成yegle.net。這就是HTTP重定向

一個HTTP請求,返回的HTTP Response Header里,第一行是HTTP的狀態碼。正常情況下,HTTP請求返回的狀態碼是200 OK。
正常的HTTP請求,返回200 OK:

< HTTP/1.1 200 OK
< Date: Fri, 16 Jul 2010 11:21:10 GMT
< Server: Apache
< X-Powered-By: PHP/5.2.4-2ubuntu5.10
< Set-Cookie: PHPSESSID=7f86ed2e5a4750275e98971773ac88ab; path=/
< Expires: Thu, 19 Nov 1981 08:52:00 GMT
< Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
< Pragma: no-cache
< Set-Cookie: wassup=ZjVjMWExMjZjNmIxNzU1NDBhZjU0MmM5MzhmYjllZDQ6OjEyNzkyODE5NzE6Ojo6MjAwMTozODg6ZjAwMDo6ZTZmOjoyMDAxOjM4ODpmMDAwOjplNmY%253D; expires=Fri, 16-Jul-2010 12:11:11 GMT; path=/
< X-Pingback: http://yegle.net/xmlrpc.php
< Vary: Accept-Encoding
< Transfer-Encoding: chunked
< Content-Type: text/html; charset=UTF-8
<

其他的比較知名的還有例如:

404 Not Found
301 Moved Permanently
302 Found
500 Internal Server Error
HTTP重定向就是通過301和302兩種狀態碼來實現的。

302是臨時重定向的意思。表示被訪問頁面因為各種需要被臨時跳轉到其他頁面。具體的例子是訪問 http://yegle.net/recursion.php

< HTTP/1.1 302 Found
< Date: Fri, 16 Jul 2010 11:26:48 GMT
< Server: Apache
< X-Powered-By: PHP/5.2.4-2ubuntu5.10
< Location: http://yegle.net/recursion.php
< Cache-Control: max-age=600
< Expires: Fri, 16 Jul 2010 11:36:48 GMT
< Vary: Accept-Encoding
< Content-Length: 0
< Content-Type: text/html
<

瀏覽器在收到302 Found的狀態碼之后會在返回的HTTP Response Header中查找Location字段,然后訪問對應地址。在這個例子中,瀏覽器就會訪問 http://yegle.net/recursion.php (嗯這是一個遞歸,你懂的…)

301是永久重定向。這樣的例子很好找。例如 http://google.com

< HTTP/1.1 301 Moved Permanently
< Location: http://www.google.com/
< Content-Type: text/html; charset=UTF-8
< Date: Fri, 16 Jul 2010 11:29:07 GMT
< Expires: Sun, 15 Aug 2010 11:29:07 GMT
< Cache-Control: public, max-age=2592000
< Server: gws
< Content-Length: 219
< X-XSS-Protection: 1; mode=block
<

同樣,瀏覽器在發現301的狀態碼之后會查找Location字段,然后訪問那個地址。

Location字段的格式很隨意,既可以是絕對地址,也可以是相對地址,還可以是相對根目錄的地址。以下Location字段都是合法的:

Location: http://yegle.net/
Location: /test/index.php
Location: index.php
Location: ../index.php

301重定向和302重定向在SEO以及緩存上是有非常大區別的。

對于SEO也就是搜索引擎優化,一個頁面302重定向到另一個頁面,新頁面的PageRank不會受原頁面影響。而一個頁面301重定向到另一個頁面,原頁面的PageRank會被傳遞到新頁面。所以對于一個網站進行域名轉換,最好的方法就是使用301重定向,在經過一段時間之后可以不損失PR地將全站轉移到新域名下。

對于HTTP代理服務器例如squid來說,如果一個頁面是302重定向到新頁面并且沒有指定Expire HTTP頭,squid將不緩存這個信息,也就是說每次用戶通過代理請求時都會重新獲取一遍。而對于301重定向,squid可以將結果緩存以便快速響應下一個請求相同頁面的用戶。

PHP里的302重定向非常簡單,只要在返回的HTTP Response Header里添加Location字段,PHP將自動返回302狀態碼。例如:

< ?php
header("Location: http://yegle.net/recursion.php");
?>
這段代碼將自動重定向到http://yegle.net/recursion.php

而301重定向則稍微有點復雜,需要直接將301狀態碼用header函數返回給用戶。例如:

< ?php
    header( "HTTP/1.1 301 Moved Permanently" );
    header( "Location: http://yegle.net/" );
?>
注意的是,跳轉不是在收到response header的時候馬上進行,也就是說頁面的剩余內容會被下載來之后瀏覽器才會跳轉。新手常犯的一個錯誤是,在邏輯判斷時對符合條件的情況進行header跳轉之后,忘了在之后加上exit(),導致錯誤。例如,用user_login()判斷用戶是否進行了登錄,如果未登錄則跳轉到登錄頁面。代碼如下:

if(!user_login()){
    header("Location:login.php");
}
//display contents for login users.
這里,容易以為header之后這段代碼就結束了,沒有在header之后使用exit()。后面的代碼繼續被執行,導致未登錄用戶看到了已登錄用戶才能看到的內容。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
奇米四色中文综合久久| 国产免费一区二区三区香蕉精| 欧美午夜视频在线观看| 久久国产精品久久久久久| 国产日韩视频在线观看| 亚洲美女久久久| 久久人人爽人人爽人人片亚洲| 日韩欧美精品网站| 国产精品jvid在线观看蜜臀| 深夜福利一区二区| 成人激情视频在线播放| 68精品国产免费久久久久久婷婷| 欧美成aaa人片免费看| 97视频在线观看免费| 欧美一级淫片videoshd| 综合欧美国产视频二区| 成人做爰www免费看视频网站| 欧美性在线观看| 97色在线视频观看| 97国产一区二区精品久久呦| 亚洲精品日韩久久久| 亚洲人免费视频| 亚洲第一精品电影| 欧美精品在线网站| 欧美视频在线观看免费网址| 亚洲一区二区免费在线| 国产精品夜色7777狼人| 欧美成人免费观看| 国产免费一区二区三区香蕉精| 国产一区欧美二区三区| 日韩精品欧美激情| 欧美老女人在线视频| 91精品国产免费久久久久久| 久久精品91久久香蕉加勒比| 午夜精品久久久久久久男人的天堂| 日韩欧美福利视频| 国产成人综合av| 国产999精品久久久| 日韩福利在线播放| 日韩成人在线视频观看| 国产日产欧美a一级在线| 国产中文字幕日韩| 国产精品永久免费观看| 欧美午夜激情在线| 中文字幕亚洲欧美| 亚洲精品天天看| 国内精品中文字幕| 国产精品成人免费电影| 日韩一级裸体免费视频| 日韩亚洲国产中文字幕| 欧美成人亚洲成人日韩成人| 国产精品精品久久久久久| 中文字幕亚洲激情| 欧美电影免费看| 欧美日韩性视频在线| 日本一欧美一欧美一亚洲视频| 在线午夜精品自拍| 日韩视频免费大全中文字幕| 亚洲欧美国产精品久久久久久久| 亚洲一级一级97网| 欧美成人在线免费| 91国产美女在线观看| 97人人模人人爽人人喊中文字| 欧美激情在线播放| 中文字幕日韩欧美精品在线观看| 欧美中文字幕第一页| 久久久久久亚洲精品不卡| 国产69精品久久久久久| 国产在线久久久| 亚洲毛茸茸少妇高潮呻吟| 91精品国产成人www| 亚洲va久久久噜噜噜久久天堂| 国产精品久久久久99| 久久资源免费视频| 日韩精品免费一线在线观看| 91精品国产91久久久| 亚洲丁香久久久| 91热精品视频| 国产精品入口免费视频一| 久久亚洲精品国产亚洲老地址| 国产在线播放91| 国产精品欧美久久久| 国产亚洲成精品久久| 日韩美女视频中文字幕| 国内精品美女av在线播放| 中文字幕欧美日韩在线| 久久精品中文字幕电影| 亚洲人成网站色ww在线| 中文字幕日韩欧美精品在线观看| 国语对白做受69| 国产福利精品av综合导导航| 欧美电影免费观看| 亚洲国产日韩欧美在线动漫| xxx成人少妇69| 国产精品免费小视频| 国产精品丝袜一区二区三区| 日韩精品在线播放| 992tv在线成人免费观看| 欧美视频13p| 国产亚洲xxx| 成人免费视频97| 中文字幕亚洲情99在线| 午夜精品免费视频| 久久精品国产69国产精品亚洲| 日韩av中文字幕在线免费观看| 欧美床上激情在线观看| 午夜精品在线观看| 日韩精品在线免费播放| 欧美床上激情在线观看| 5278欧美一区二区三区| 在线观看成人黄色| 国产精品欧美日韩一区二区| 欧美日韩中文在线| 亚洲乱码国产乱码精品精天堂| 亚洲色图美腿丝袜| 久久久黄色av| 欧美大码xxxx| 日本欧美在线视频| 日韩大陆毛片av| 91美女片黄在线观看游戏| 亚洲国产97在线精品一区| 91久久精品国产91久久性色| 亚洲欧美日韩成人| 国产精品福利在线| 中文字幕精品av| 综合网日日天干夜夜久久| 日韩欧美中文字幕在线播放| 亚洲天堂日韩电影| 日韩精品中文字幕视频在线| 亚洲激情视频在线观看| 日韩精品视频免费在线观看| 日韩欧美国产中文字幕| 国产69精品99久久久久久宅男| 在线观看亚洲视频| 亚洲精品资源美女情侣酒店| 久久久久久中文字幕| 国产精品亚洲аv天堂网| 亚洲二区中文字幕| 亚洲欧美另类中文字幕| 欧美在线免费观看| 欧美性xxxx在线播放| xxxx性欧美| 日韩精品久久久久久福利| 97精品伊人久久久大香线蕉| 国产午夜一区二区| 久久成人精品视频| 亚洲情综合五月天| 91视频国产高清| 久久久久久国产三级电影| 国产精品视频导航| 欧美日韩国产成人高清视频| 正在播放国产一区| 久久国产精品久久久久久久久久| 国产精品r级在线| 久久久久久久久综合| 91精品国产99| 欧美日韩亚洲精品内裤| 久久久久99精品久久久久| 亚洲色图在线观看| 色爱av美腿丝袜综合粉嫩av| 欧美一级电影久久| 午夜美女久久久久爽久久| www国产91| 中文字幕亚洲无线码a|