Username: Password:

cgi中域名转向的原理
来源:linux宝库作者:linux宝库 发布时间:2007-09-30 00:00:00


  域名转向的原理:

  当我们经过代理商从国际域名机构注册一个国际域名以后,通常都是有拥有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.chinalb.com|

  bbs|http://club.chinalb.com|

  chat|http://wwwbug.ciscn.com/netbugchat|

  纪录的格式为:

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

  domain.cgi?转向的主程式文档

  #!/usr/bin/perl

  $|=1;

  $errorpagefile="error.htm"; # 域名错误时返回的页面

  $filename="/home/lb51j/html/urlfile.txt"; # 纪录文档的物理路径

  $homepage= "http://www.chinalb.com"; # 主页的真实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

  ..............

  ??????????

喜欢本文,那就收藏到:

    Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
相关评论  我也要评论
还没有关于此文章的相关评论!
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 导航
    赞助商
    文章类别
    订阅