如何做免费域名 xxx.mydomain.com

lushan

新手上路
注册
2004-06-23
消息
4,246
荣誉分数
1
声望点数
0
着互联网的发展,公司或个人拥有自己的域名已经很普遍,当你拥有了自己的域名,拥有了自己的网站,无非最想做的一件事是将网站的知名度及访问量提高,可能贵站的内容并不特别丰富,或更新率也不是特别高,那么提供“免费服务”一向是促进网站知名度及访问量的首选做法。  例如最简单的免费计数器、免费留言板、免费论坛、免费聊天室到近期还挺火热的免费虚拟域名服务,说起免费虚拟域名,老网虫们必定会回忆起最早提供免费虚拟域名服务的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.co
m. (
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甚至用java - script等脚本程序,假设你拥有一个“404.com.cn”的域名,并且已经支持广泛域解释,要实现类似“YourName.404.com.cn”这样的虚拟域名,在CGI里面首先获得环境变量HTTP_HOST,然后进行判断处理,最后重定到目标网址便大功告成。

  〖index.cgi文件:〗
#!/usr/bin/perl
print "Content-type: text/html\n\n";
@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 "<title>$title</title>\n";
print "<frameset frameborder=0 framespacing=0 border=0 rows=100%,*
noresize>\n";
print "<frame src=$url noresize>\n";
print "</frameset>\n";
print " http-equiv=refresh content=0; url=$url>\n";
print "<a href=$url>$url</a>\n";
}

  本文仅从原理上进行了描述,把目标网址放在程序里面仅是为了测试,感兴趣的读者可以应用MySQL数据库,做一个承受数百万会员制的免费域名系统当然不在话下
 
后退
顶部