最近遇到一個朋友購買了三個域名和一個虛擬主機,想使其中兩個域名要跳轉到不同的網站,另外一個域名正常訪問。我們都知道通過域名轉發跳轉很容易辦到,問題是轉發的域名必須備案,然而域名沒有備案,這就造成了麻煩。
一個虛擬主機多個站點
了解點程序的人都知道,通過重定向語句可以跳轉另一個鏈接,現以asp為例:asp里面有個response.redirect "鏈接地址" 語句,我們可以寫一個判斷語句,如果是A網址就跳轉到A網址對應的網站,如果是B網址就跳轉到B網址對應的網站,如果是C網址就不做重定向。這樣就可以實現要求。程序格式如下:
<%
if Request.ServerVariables("SERVER_NAME")="www.a.com" then
response.redirect "http://www.a1.com/"
elseif Request.ServerVariables("SERVER_NAME")="www.b.com" then
response.redirect "http://www.b1.com/"
end if
%>
通過這個問題的解決我們可以延伸一下,就可以實現企業網站建設中一個虛擬主機多個站點。方法如下:
首先將多個域名綁定到同一個虛擬主機上,然后建立多個目錄分別放不同的網站,比喻A、B、C…這里還是以asp為例,其他語言類似。建立好后,我們在默認主頁index.asp文件的最上方寫上如下程序:
<%
if Request.ServerVariables("SERVER_NAME")="www.a.com " then
response.redirect "a/index.asp"
elseif Request.ServerVariables("SERVER_NAME")="www.b.com " then
response.redirect "b/index.asp"
elseif Request.ServerVariables("SERVER_NAME")="www.c.com " then
response.redirect "c/index.asp"
……
end if%>
網上還有一些教程是讓您用response.redirect來實現轉向,但在這里,我建議您使用server.Transfer("")來實現這個功能,好處有以下幾個方面:
1、不會出現頁面跳轉,直接輸入網址后,網址后不會帶任何文件,訪問者不會看出你的兩個網站是放在同一虛擬主機上。(當然這時候不能把其他網站的首頁放到建立的文件夾下,而是直接放到根目錄下,取名為index.htm,index.html,default.asp等等都可以)
2、server.Transfer("")不會阻擋搜索引擎對你的網站的收錄,而response.redirect可不一定