域名重定向
1.什麼是重定向?
簡單講,就是從網址A調轉到網址B。
官方定義:重定向(Redirect)就是通過各種方法將各種網路請求重新定個方向轉到其它位置(如:網頁重定向、域名的重定向、路由選擇的變化也是對數據報文經由路徑的一種重定向)。
2.為什麼需要重定向?什麼時候需要重定向?
官方的比較簡潔的說明:
301 redirect: 301 代表永久性轉移(Permanently Moved)
302 redirect: 302 代表暫時性轉移(Temporarily Moved )
meta fresh:通過網頁中的meta指令,在特定時間後重定向到新的網頁,現在很少用了。
4.301 redirect 和302 redirect的區別
詳細來說,301和302狀態碼都表示重定向,就是說瀏覽器在拿到伺服器返回的這個狀態碼後會自動跳轉到一個新的URL地址,這個地址可以從響應的Location首部中獲取(用戶看到的效果就是他輸入的地址A瞬間變成了另一個地址B)——這是它們的共同點。他們的不同在於。301表示舊地址A的資源已經被永久地移除了(這個資源不可訪問了),搜索引擎在抓取新內容的同時也將舊的網址交換為重定向之後的網址;302表示舊地址A的資源還在(仍然可以訪問),這個重定向只是臨時地從舊地址A跳轉到地址B,搜索引擎會抓取新的內容而保存舊的網址。
<?php header("HTTP/1.1 301 Moved Permanently"); Header("Location: //www.domain.com"); ?>
2)項級域名 301 重定向到帶 www 的二級域名(例如:舊域名301重定向到新域名)
<?php $host = $_SERVER['HTTP_HOST']; $request = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; if($host == 'domain.com'){ header('HTTP/1.1 301 Moved Permanently'); header('Location: //www.domain.com'.$request); } ?>
302重定向方法:
1)所有網頁 302 重定向指定網址
<?php header("Location: //www.domain.com"); ?>
2)指定網址,302到另一個網站的首頁(例如:舊域名302重定向到新域名)
<?php $host = $_SERVER['HTTP_HOST']; if($host == 'domain.com'){ header('HTTP/1.1 302 Moved Temporarily'); header('Location: //www.domain.com'); } ?>
ps:請將上面的domain.com和www.domain.com修改成你想要跳轉到的域名。