(这条文章已经被阅读了 187 次) 时间:2001-08-26 02:26:31 来源:林兴陆 (lin) 收藏
随着互联网的发展,公司或个人拥有自己的域名已经很普遍,当你拥有了自己的
域名,拥有了自己的网站,无非最想做的一件事是将网站的知名度及访问量提高,可
能贵站的内容并不特别丰富,或更新率也不是特别高,那么提供“免费服务”一向是
促进网站知名度及访问量的首选做法。
例如最简单的免费计数器、免费留言板、免费论坛、免费聊天室到近期还挺火热
的免费虚拟域名服务,说起免费虚拟域名,老网虫们必定会回忆起最早提供免费虚拟
域名服务的Monolith组织(http://www.ml.org),不过该组织于98年底已经停止该项
服务了。就算是新生网虫,想必也应该知道像“my.yeah.net”这样的免费虚拟域名
服务吧。你是否曾想过提供类似虚拟域名这样的服务来促进网站知名度呢?也不知道
技术实现难度如何?
经过对域名系统的分析,并参考了域名相关的技术介绍文档,发现制作这种虚拟
域名并不是很困难,只要增加广泛域解释支持(即可以用任何前缀+你的域名直接访
同样访问你的网站),并利用CGI作相应的二次解释操作即可实现。
多数Unix平台下的域名系统都支持广泛域解释支持,NT平台自带的域名系统并不
支持广泛域,一般选用第三方域名软件方才支持,如:DNS Pro。
关于广泛域设置,只需将域名前缀用“*”表示,这里以named守护程序作为例子,
修改相应的数据文件,将类别修改成CNAME,CNAME类记录的作用是把一个主机的别名
与其规范名联系起来,IP地址用“@”表示。
〖404.com.cn.db 域名数据文件〗:
@ IN SOA ns1.winernet.com. root.ns1.winernet.com. (
1998122700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns1.yes123.com.
IN MX 5 404.com.cn.
www IN A 202.105.191.16
404.com.cn. IN A 202.105.191.16
* IN CNAME @
具体实现虚拟域名二次解释操作的方法,实现之前要确保Web服务器已经将默认文
件设置为index.cgi,以下用简单的脚本语言Perl为例,可轻松的改写成ASP或PHP甚至
用JavaScript等脚本程序,假设你拥有一个“404.com.cn”的域名,并且已经支持广
泛域解释,要实现类似“YourName.404.com.cn”这样的虚拟域名,在CGI里面首先
获得环境变量HTTP_HOST,然后进行判断处理,最后重定到目标网址便大功告成。
〖index.cgi文件:〗
#!/usr/bin/perl
print “Content-type: text/html\n\n”;
@domain = split/\./,domain[0] eq ‘www’){
&redirect(“404 工作室”,”http://www.404.com.cn/index.html”);
}
elsif(title,title</title>\n”;
print “<frameset frameborder=0 framespacing=0 border=0 rows=100%,* noresize>\n”;
print “<frame src=url>\n”;
print “<a href=url</a>\n”;
}
本文仅从原理上进行了描述,把目标网址放在程序里面仅是为了测试,感兴趣的读者
可以应用MySQL数据库,做一个承受数百万会员制的免费域名系统当然不在话下。