此前維護的一個網站需要變更域名,所以要對其進行域名跳轉設置..收集了一下資料發現,這一個原以為"簡單"的一個跳轉,還是有點沒關注過的"學問"..
接觸過Http協議的都知道,返回頭中都有一個status的字段,用來標示返回信息的一些狀態..比如我們熟識的200,404,500等等..這其中還有一個比較常見的是302重定向,瀏覽器接收到這個返回值,識別出這個302重定向狀態,就會讀取頭信息中的Location字段中包含的重定向網址,轉而訪問這個新地址..
聽起來這個302重定向和我們需求的域名跳轉有點像,但是這里注意一個問題,我們的網站是有一定權重之類的標示網站的訪問量等數據的,如果我們換用新域名后,這類信息就丟失了,所以如果簡單的使用302重定向實現跳轉,那么我們網站的權重等等都得重新再來,這顯然不合算的..
因此Http中還有一個類似的跳轉狀態,301永久跳轉,這個表示當前頁面永久跳轉到新頁面,原網站的權重等等信息也會直接繼承到新網站上去..這個才是我們換域名,指引用戶訪問新域名,保持網站之前的權重等信息所采用的跳轉方法..
此處舉例2中jsp種的簡單實現方法:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%response.setStatus(301);response.setHeader( “Location”, “http://www.ahwebs.com/” );response.setHeader( “Connection”, “close” );%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String servername=request.getServerName(); String serverPath=request.getServletPath(); String addres="http://www.baidu.com"; response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); response.setHeader("Location",addres); %> 新聞熱點
疑難解答