簡(jiǎn)單利用404頁(yè)面做全站301重定向
發(fā)布日期:[2014/1/26] 編輯:奇億廣州網(wǎng)站建設(shè)
最近遇到一個(gè)使用國(guó)內(nèi)虛擬空間又不支持偽靜態(tài)的客戶需要更換新域名,但由于新域名未備案無(wú)法直接綁定使用,故暫時(shí)只能將網(wǎng)站數(shù)據(jù)放在國(guó)外使用新域名,老域名做全站301重定向至新域名。
我們都知道服務(wù)器的話很容易做,直接在IIS里面或者偽靜態(tài)里面設(shè)置即可,如果做了很多限制的虛擬空間如何做全站301重定向呢?下面是直接利用404錯(cuò)誤頁(yè)來(lái)做301全站重定方法:(前提是可以自行設(shè)置404錯(cuò)誤頁(yè)面)。
1,將空間404錯(cuò)誤頁(yè)設(shè)置為404.asp;
2,將空間默認(rèn)首頁(yè)設(shè)置為404.asp;
3,將以下代碼保存為404.asp,并上傳至舊空間根目錄:
以下是引用片段: <%
url1="http://www.71wl.com" ’原域名
url2="http://www.studstu.com" ’新域名
u1=Request.ServerVariables("SERVER_NAME")’取得網(wǎng)址域名地址
u2=Request.ServerVariables("URL")’獲取 .com/net/等后面的UL地址
if Trim(Request.QueryString)<>"" then’如果有變量參數(shù),就獲取,沒(méi)有就跳過(guò)
u3="?"&Trim(Request.QueryString)
end if
url="http://"&u1&u2&u3 ’將獲取到如http://www.71wl.com/404.asp?404;http://www.71wl.com:80/news/689.html
url=replace(url,url1&"/404.asp?404;","")
url=replace(url,url1&":80",url2)
url=replace(url,url1&"/404.asp",url2) ’針對(duì)首頁(yè)301跳轉(zhuǎn)
url=replace(url,"index.asp","")
’Response.write(url)
Response.Status="301 Moved Permanently"
Response.AddHeader "Location",url
if request.ServerVariables("HTTP_HOST")="studstu.com" then
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.studstu.com"
Response.End
end if
%> |
注意:將以上原域名和新域名都更換成你自己的。
4,訪問(wèn)試試吧,大功告成。
但是,如果虛擬空間連404頁(yè)面都無(wú)法自行設(shè)置呢?又或者404頁(yè)面不能設(shè)置為ASP格式,只能HTML或HTM靜態(tài)格式怎么辦?這樣的話只能利用JS全站跳轉(zhuǎn)了,雖然不是301重定向,但還是能保留住原域名流量的。下面是404.html格式,用法跟上面的一樣。
以下是引用片段: <script language="&#106avascript" type="text/&#106avascript">
<!--
var abc = "www.studstu.com";
var qwe = window.location.host;
if(qwe != abc){
window.location = "http://" + abc + window.location.pathname + window.location.search + window.location.hash;
}
-->
</script> |
用JS全站跳轉(zhuǎn)的話只需要輸入一個(gè)新域名就行。