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