典型的二级域名转向系统中,用户可以申请自己的二级域名并设定转向地址,例如申请http://bbs.mzwu.com/转向http://bbs.dvbbs.net/index.asp?boardid=3,今天我们就来说说它的实现原理。
一、实现原理二级域名转向的实现原理
其主要技术就是使用泛域名,什么是泛域名呢?类似*.mzwu.com即泛域名,这样你使用news.mzwu.com,blog.mzwu.com,bbs.mzwu.com它们都将访问同一服务器上同一个站点。泛域名的设置过程也非常简单:在DNS中建立名为*.mzwu.com的泛域名,将其指向服务器IP,而服务器上要使用泛域名的站点的主机头为空即可(服务器有个特性:当在所有站点主机头中找不到与URL中对应的主机时就转向访问没有主机头的站点,这也是泛域名得以实现的关键!也因为有这个特性,服务器上还是可放置其他站点,但必需设置主机头,访问不会有冲突)。此外,我们还要做一个页面用于处理二级域名并实现转向,当然,得让这个页面是首页。
二、应用举例
这边我们假设已设置好泛域名,服务器上也设置好了站点,省去注册,设置转向域名的过程,只让大家看下数据库结构,然后写出实现转向的ASP源码。
1.数据库结构
2.二级域名处理、实现转向源码
程序代码
<!-- #include file="conn.asp" -->
<%
Dim ors二级域名转向的实现原理
Dim sUrl,sHost
Set ors = Server.CreateObject("ADODB.RecordSet")
sUrl = Lcase(Request.ServerVariables("HTTP_HOST"))
sHost = Left(sUrl,InStr(sUrl,".")-1)
ors.open "Select url from table1 where host='" & sHost & "'",oConn,1,2
If not ors.eof Then
'搜索到二级域名信息,跳转到用户指定的URL
Response.Redirect(oRs(0))
Else
'搜索不到二级域名信息,跳转注册页面
Response.Redirect("http://www.mzwu.com/reg.asp")
End If
ors.close
Set ors = Nothing
%>
<%
Dim ors二级域名转向的实现原理
Dim sUrl,sHost
Set ors = Server.CreateObject("ADODB.RecordSet")
sUrl = Lcase(Request.ServerVariables("HTTP_HOST"))
sHost = Left(sUrl,InStr(sUrl,".")-1)
ors.open "Select url from table1 where host='" & sHost & "'",oConn,1,2
If not ors.eof Then
'搜索到二级域名信息,跳转到用户指定的URL
Response.Redirect(oRs(0))
Else
'搜索不到二级域名信息,跳转注册页面
Response.Redirect("http://www.mzwu.com/reg.asp")
End If
ors.close
Set ors = Nothing
%>
三、使用扩展
在一些自助建站、oBlog等WEB系统中有提供二级域名功能,有的还可以自己绑定一级域名,其实现原理和上边类似:先判断域名是否存在于库中,存在则加载对应用户的信息,否则跳转至指定页面;对于一级域名绑定则多加一个步骤,在DNS中将其指向服务器IP即可(不要忘了服务器的特性,由于没有在服务器中建立相应的主机头的站点,它也是访问主机头为空的站点)。 二级域名转向的实现原理