|
如何制作自己免费虚拟域名 |
|
随着互联网的发展,公司或个人拥有自己的域名已经很普遍,当你拥有了自己的域名,拥有了自己的网站,无非最想做的一件事是将网站的知名度及访问量提高,可能贵站的内容并不特别丰富,或更新率也不是特别高,那么提供“免费服务”一向是促进网站知名度及访问量的首选做法。
例如最简单的免费计数器、免费留言板、免费论坛、免费聊天室到近期还挺火热的免费虚拟域名服务,说起免费虚拟域名,老网虫们必定会回忆起最早提供免费虚拟域名服务的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/htmlnn"; @domain = split/./,$ENV{'HTTP_HOST'},2; # 以“.”作为标记,进行分割 if($domain[0] eq 'www'){ &redirect("404 工作室","http://www.404.com.cn/index.html"); } elsif($domain[0] eq 'lin'){ &redirect("星网情真","http://member.netease.com/~lin/"); } else{ print "虚拟域名未被使用!"; } sub redirect{ my($title,$url) = @_; print "n"; print "noresize>n"; print "n"; print "n"; print "n"; print "$urln"; } 本文仅从原理上进行了描述,把目标网址放在程序里面仅是为了测试,感兴趣的读者可以应用MySQL数据库,做一个承受数百万会员制的免费域名系统当然不在话下。 |