设为首页收藏本站language 语言切换
查看: 1745|回复: 0
收起左侧

玩转虚拟域名◎+ .

[复制链接]
发表于 2010-2-24 13:35:34 | 显示全部楼层 |阅读模式
<br>                   不知道大家最近上网是否发现一个新现象,就是有一些网站开始提供“username@server”的虚拟域名服务。由于“@”的魅力,大家纷纷申请,你或许会想:“如果我也能提供这种服务,该多好阿:)人气肯定不错!”本文将给大家揭开“@”的“神秘”面纱,让大家都可以来“@”!(Do u @ today?)  <BR>别急,这个并不是电子邮件的地址,是一种虚拟域名,不相信的话可以在浏览器中访问“bbs@zphp.com”。部分朋友应该使用过IE的FTP功能,就是在浏览器的地址栏中键入“password:username@server”IE就会自动登陆FTP服务器;而在Http1.1协议中,就规定了Http访问授权功能,形式同样为“password:username@server”,其中“password:”可以省略,也是是访问“bbs@zphp.com”实际上是以bbs的身份访问“zphp.com”这个服务器。  <BR>那么我们只是需要将具体的URI传送给PHP程序,在数据库中搜索出真实的URL重定向就可以了。  <BR>首先我们需要制作一个传送URI的页面(作为服务器的默认文档,一般命名为index.htm);在JS的Window对象中就可以实现这项功能,下面是index.htm的源代码:  <BR>&lt;script&gt;  <BR>this.location = ‘gotourl.php?url=’ + this.location.href;  <BR>&lt;/script&gt;  <BR>上面的代码会将浏览器重定向到gotourl.php,并且通过QueryString给变量$url赋值为当前的URI。  <BR>成功将URI传递给PHP程序后,就可以进入数据库查找真实URL,下面是SQL数据库相对应的table 的结构:  <BR>CREATE TABLE domain(  <BR>Id int(3) UNSIGNED DEFAULT ‘0’ NOT NULL, # 域名ID  <BR>Domain char_(20) NOT NULL, # 域名  <BR>Gotourl char_(255) NOT NULL, # 真实的URL  <BR>);  <BR>建立好了Table,就可以开始编写gotourl.php了,程序分为三个部分:  <BR><BR>1、 分析URL:  <BR>$url = preg_replace(“/^http:\\/\\//I”, “”, $url); // 将URL前面的“http://”去掉,不区分大小写  <BR>$url = preg_replace(“/@.+$/”, “”, $url); // 将“@”后面的部分去除  <BR>那么,剩下的URL就只含有“username”的部分了。  <BR>为了给数据库应用,需要对铭感的字符进行处理:  <BR>$url = addslashes($url);  <BR>2、 搜索真实的URL:  <BR>这里为了实现程序的通用性,使用了一个数据库的操作类(修改自PHPLib)来操作SQL数据库:  <BR>$db = new dbSql(); // 连接数据库  <BR>$queryString = sprinf(“SELECT gotourl FROM domain WHERE domain=’%s’;”, $url); // 生成查询字符串  <BR>$gotourl = $db-&gt;result($queryString); // 查询取得结果  <BR>3、 重定向:  <BR>在PHP中重定向浏览器有多种方法,在这里使用比较简单的HttpHeader来实现:  <BR>header(“location: $gotourl”);  <BR><BR><BR>附  <BR><BR>其实像网易那样子的“username.yeah.net”的虚拟域名服务和“@”的实现方法大同小异,但是“.”需要以价值200元的DNS泛解析为代价,而“@”所需要的仅仅是:  <BR>1、 PHP/SQL数据库的权限;  <BR>2、 真正DNS解析的域名。  <BR><BR>如果需要在虚拟域名服务中加入广告,比如网易的Popup窗口,可以将重定向部分改为:  <BR>&lt;script&gt;  <BR>window.open("url","nease","width=windth,height=height");  <BR>&lt;/script&gt;  <BR><BR>为了对得起“天地良心”,笔者没有将合并后完整的程序加上来(骗稿费?),如果大家比较懒,需要完整的代码(包括了添加等等),可以在http://zphp.com或者http://bbs@zphp.com取得。希望大家都有一个好的访问量。                   <br><br>
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-6 07:20 , Processed in 0.146350 second(s), 23 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表