前些天看到一篇关于使用Http1.1协议支持"password:username@server',(其中"password:"可以省略)的文章,(呵呵,有些过时啦!),突来的想法,决定根据这个特性写一个实现@虚拟域名转向(http://xxx@xxx.xxx)的系统.
由于最开始一直在ASP中钻研,总是没办法获得http://xxx@xxx.com的完全地址,无从入手,今得how172兄的提醒
www.blueidea.com/bbs/newsdetail.asp?id=1179134&posts=current
先使用JS取得当前页地址,然后转向,才恍然大悟,花了两个小时完成了这个系统的雏形(源代码在帖顶!).
给大家我的思路,希望对某些感兴趣的朋友些许帮助:
首先必须有自己的顶级域名:-),还要牺牲自己的首页index.asp的命名(比如说:将首页改名为index1.asp,不过在程序里可以通过判断将没有带@参数的域名再跳转到首页).
首先在将域名所在根目录下的默认首页index.asp作为获取@前参数跳转
index.asp
<script>
//获取当前页的完整URL:http://xxx@xxx.xxx形式
var xx=location.href
//将输入的域名url以url参数形式传递到go.asp
document.location.href="go.asp?url="+xx
</script>
go.asp处理域名并实现跳转
<%'数据库连接,存放用户注册信息,内容为域名,以及域名所指向的具体URL地址,域名访问简单记数,以及一些用户信息%>
<!--#include file="conn.asp" -->
<%
'获取URL参数
url=request.QueryString("url")
'判断是否是以虚拟@域名形式传递过来
if instr(url,"@")=0 then
'如果没有则直接跳转到自己的首页index1.asp
response.Redirect("index1.asp")
else
'处理url参数,取得http://username@domain.com中的username
url=right(url,(len(url)-len("http://")))
url=left(url,(instr(url,"@")-1))
user=url
'从数据库中取出于username对应的转向目标url地址
set rs=conn.execute("select siteurl from url where user='"&user&"'")
if rs.bof or rs.eof then
'如果没有记录则显示:该域名不存在
response.Write("<a href='http://skyworm.com'><font size=2><center>该域名不存在</center></font></a>")
else
'对域名访问率简单记数
conn.execute("update url set count=count+1 where user='"&user&"'")
'跳转到虚拟域名对应的目标url地址,程序结束!
response.Redirect(rs(0))
end if
rs.close
set rs=nothing
end if
conn.close
set conn=nothing
%>
主程序就是这些,很简单吧,就是要看你想不想的到!
数据库部分是提供用户注册来的,具体实现不在此研究范围类,我就不说了,
这仅仅是一个示例思路,请感兴趣的朋友扩展!
------------------------------------
default.asp
<script>
var xx=location.href
document.location.href="go.asp?url="+xx
</script>
go.asp
<%
if instr(request.QueryString("url"),"eukj")=0 then
response.Write("<a href='http://www.ssfzzx.com'><font size=2><center>你输入的域名不存在,请仔细检查!默认将转向-石狮服装在线-</center></font></a>")
else
response.Redirect("http://www.eukj.com.cn/eukj/")
end if
if instr(request.QueryString("url"),"ssfzzx")=0 then
response.Write("<a href='http://www.ssfzzx.com'><font size=2><center>你输入的域名不存在,请仔细检查!默认将转向-石狮服装在线-</center></font></a>")
else
response.Redirect("http://www.ssfzzx.com/defaultt.asp")
end if
%>