公司动态

在CGI中实现免费域名转向的方法

在CGI中实现免费域名转向的方法

域名转向的原理: 
    当我们经过代理商从国际域名机构注册一个国际域名以后,通常都是有拥有DNS主机的代 
理商作第一级的域名DNS设置,这时候DNS服务商为你解析了一个www.youname.com的域名。 
而实际上一个国际域名是可以设置多个二级域名的,例如:abc.youname.com;a.youname.com 
但是当我们要增加2级域名时,必须经过代理商作DNS的设置,很多代理商对这项服务都需要 
收费,即使免费也只能设置小数的几个。而通过CGI转向的办法,可以为你设置无数个二级 
域名而无需要通过DNS服务商,同时还支持非IP地址的转向,例如把:abc.youname.com 
转向: http://my.youname.com/~youname/index.htm 
  
CGI程序的转向原理: 
现以本站的域名转向程序作讲解。 
使用该程序首先要求DNS代理商在设置你的国际域名时采用支持多级域名的解释,也就是当 
你调用*.youname.com时与调用http://www.youname.com时的效果一样。(本站域名注册提供 
该项服务支持)。 
当用http://*.youname.com访问网站时,首先打开index.htm文件,这时候index.htm通过 
javascript调用一个CGI脚本并把地址栏信息传递到CGI脚本中,CGI脚本通过传递过来的信息 
解析出需要转向的网址,并自动跳转到该网页,从而完成整过二级域名的专向过程。 
  
代码的评析: 
程序中共有3个文件index.htm,domain.cgi,urlfile.txt 
index.htm ――转向的根文件,采用框架屏蔽地址栏. 
该文件采用框架直接调用主文件domain.cgi,请把该文件放在主域名的web根路径 

urlfile.txt ――转向的数据记录文件: 
www|http://www.uqc.cn| 
bbs|http://club.uqc.cn| 
chat|http://wwwbug.uqc.cn/netbugchat| 

纪录的格式为: 

二级域名的前缀|转向的URL路径| 

domain.cgi―转向的主程序文件 
#!/usr/bin/perl 
$|=1; 

$errorpagefile="error.htm"; # 域名错误时返回的页面 
$filename="/home/lb51j/html/urlfile.txt"; # 纪录文档的物理路径 
$homepage= "http://www.uqc.cn"; # 主页的真实URL 

$url = $ENV{’HTTP_REFERER’}; # 调用脚本的URL二级域名 

$url=~s/Http:////g; # 把域名URL中的’http://’过滤掉 
$url=~s/HTtp:////g; 
$url=~s/HTTp:////g; 
$url=~s/HTTP:////g; 
$url=~s/http:////g; 
$url=~s/hTTP:////g; 
$url=~s/htTP:////g; 
$url=~s/httP:////g; 
$url=~s/hTtP:////g; 
$url=~s/HtTp:////g; 
$url=~s/HttP:////g; 
$url=~s/hTTp:////g; 
$url=~s/HTtP:////g; 
$url=~s/htTp:////g; 
$url=~s/HtTP:////g; 
$url=~s/hTtp:////g; 


@name1=split(/./,$url); # 求出二级域名的前缀 
$name2=$name1[0]; 
$name2=~tr/A-Z/a-z/; 

open (FILE,"$filename"); # 打开数据记录文件urlfile.txt 
@line=; 
close (FILE); 


foreach (@line){ # 求出对应域名前缀的转向URL 
@line1=split(/|/,$_); 
if ($line1[0] eq $name2){ 
$urllink=$line1[1]; 



if(!($urllink)){ 
print "Location: $homepagenn"; # 对于没有定义的域名前缀转向默认的页面 
exit 0; 


print "Location: $urllinknn"; # 跳转到用户的页面 
exit 0; 

支持多级域名的DNS设置方法: 
1。首先设置该域名的DNS数据文件,添加一个A纪录 

* IN A 你的服务器IP 

2。配置web服务器(以Apache为例) 

在httpd.conf文件中修改虚拟主机设置: 


............... 
............... 
ServerName you.com 
ServerAlias *.you.com 
.............. 



本文网址:http://www.9ctrl.com/contents/11/140.html