域名转向的原理:
当我们经过代理商从国际域名机构注册一个国际域名以后,通常都是有拥有DNS主机的代理商作第一级的域名DNS设置,这时候DNS服务商为你解析了一个www.的域名。 而实际上一个国际域名是可以设置多个二级域名的,例如:abc.;a. 但是当我们要增加2级域名时,必须经过代理商作DNS的设置,很多代理商对这项服务都需要收费,即使免费也只能设置小数的几个。而通过CGI转向的办法,可以为你设置无数个二级域名而无需要通过DNS服务商,同时还支持非IP地址的转向,例如把:abc. 转向: http://my./~youname/index.htm CGI程序的转向原理: 现以本站的域名转向程序作讲解。 使用该程序首先要求DNS代理商在设置你的国际域名时采用支持多级域名的解释,也就是当你调用*.时与调用http://www.时的效果一样。(本站域名注册提供该项服务支持)。 当用http://*.访问网站时,首先打开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.| bbs|http://club.| chat|http://wwwbug./netbugchat| 纪录的格式为: 二级域名的前缀|转向的URL路径| domain.cgi—转向的主程序文件 #!/usr/bin/perl $|=1; $errorpagefile="error.htm"; # 域名错误时返回的页面 $filename="/home/lb51j/html/urlfile.txt"; # 纪录文档的物理路径 $homepage= "http://www."; # 主页的真实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 .............. —————————— |
|