玩转虚拟域名◎+

2016-01-29 13:31 59 1 收藏

玩转虚拟域名◎+,玩转虚拟域名◎+

【 tulaoshi.com - PHP 】

不知道大家最近上网是否发现一个新现象,就是有一些网站开始提供username@server的虚拟域名服务。由于@的魅力,大家纷纷申请,你或许会想:如果我也能提供这种服务,该多好阿:)人气肯定不错!本文将给大家揭开@的神秘面纱,让大家都可以来@!(Do u @ today?)
别急,这个并不是电子邮件的地址,是一种虚拟域名,不相信的话可以在浏览器中访问bbs@zphp.com。部分朋友应该使用过IE的FTP功能,就是在浏览器的地址栏中键入password:username@serverIE就会自动登陆FTP服务器;而在Http1.1协议中,就规定了Http访问授权功能,形式同样为password:username@server,其中password:可以省略,也是是访问bbs@zphp.com实际上是以bbs的身份访问zphp.com这个服务器。
那么我们只是需要将具体的URI传送给PHP程序,在数据库中搜索出真实的URL重定向就可以了。
首先我们需要制作一个传送URI的页面(作为服务器的默认文档,一般命名为index.htm);在JS的Window对象中就可以实现这项功能,下面是index.htm的源代码:
<script
this.location = ‘gotourl.php?url=’ + this.location.href;
</script
上面的代码会将浏览器重定向到gotourl.php,并且通过QueryString给变量$url赋值为当前的URI。
成功将URI传递给PHP程序后,就可以进入数据库查找真实URL,下面是SQL数据库相对应的table 的结构:
CREATE TABLE domain(
Id int(3) UNSIGNED DEFAULT ‘0’ NOT NULL, # 域名ID
Domain char(20) NOT NULL, # 域名
Gotourl char(255) NOT NULL, # 真实的URL
);
建立好了Table,就可以开始编写gotourl.php了,程序分为三个部分:

1、 分析URL:
$url = preg_replace(/^http:///I, , $url); // 将URL前面的http://去掉,不区分大小写
$url = preg_replace(/@.+$/, , $url); // 将@后面的部分去除
那么,剩下的URL就只含有username的部分了。
为了给数据库应用,需要对铭感的字符进行处理:
$url = addslashes($url);
2、 搜索真实的URL:
这里为了实现程序的通用性,使用了一个数据库的操作类(修改自PHPLib)来操作SQL数据库:
$db = new dbSql(); // 连接数据库
$queryString = sprinf(SELECT gotourl FROM domain WHERE domain=’%s’;, $url); // 生成查询字符串
$gotourl = $db-result($queryString); // 查询取得结果
3、 重定向:
在PHP中重定向浏览器有多种方法,在这里使用比较简单的HttpHeader来实现:
header(location: $gotourl);




其实像网易那样子的username.yeah.net的虚拟域名服务和@的实现方法大同小异,但是.需要以价值200元的DNS泛解析为代价,而@所需要的仅仅是:
1、 PHP/SQL数据库的权限;
2、 真正DNS解析的域名。

如果需要在虚拟域名服务中加入广告,比如网易的Popup窗口,可以将重定向部分改为:
<script
window.open("url","nease","width=windth,height=height");
</script

为了对得起天地良心,笔者没有将合并后完整的程序加上来(骗稿费?),如果大家比较懒,需要完整的代码(包括了添加等等),可以在http://zphp.com或者http://bbs@zphp.com取得。希望大家都有一个好的访问量。 

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/php/)

来源:http://www.tulaoshi.com/n/20160129/1490499.html

延伸阅读
标签: 生活常识
域名投资是我国域名注册管理机构,所有的中国域名都由他们统一管理。那里的专家肯定地向记者表示,投资域名是能赚钱的,但是指望注册一个域名就能获得百倍的回报,这是不现实的。 域名投资是什么?域名投资技巧 什么是域名投资 域名投资是指投资者通过低价注册域名或抢注域名,然后高价转让的行为。是一种商业手段,目前已...
标签: ASP
  写的很简单,只是实现了功能 <% Function formaturl(yes)  If mid(yes,5,1)<"" then  yes1 = left(yes,3)  yes2 = right(yes,cint(len(yes))-3)  formaturl = yes1 & "." & yes2  else  formaturl=yes  end if End Function '取得远程网页二进制源代码 Function getBoy(url)  ...
标签: 服务器
OSS域名绑定教程   OSS域名绑定(CNAME)功能目前仅支持OSS以三级域名访问方式进行绑定。 即您的OSS访问方式为(Bucket name).oss.aiyuncs.com 请确定您目前的采用上述访问方式后,再进行以下域名绑定操作。 一、 登录阿里云OSS控制台 登录链接http://console.aliyun.com/oss/index.html 二、 设置绑定域名,验...
标签: 电脑入门
第一步,上www.co.cc申请一个二级域名。 第二步,打开http://domain.mail.qq.com/cgi-bin/loginpage,根据提示创建。 如果根据腾迅的提示不会创建的话,可参考一下我设置的。 Domain Name  Type/Pri  Value haiyangtop.co.cc MX     10 mxdomain.qq.com mail.haiyangtop.co.cc CNA...
标签: PHP
Cookie真是一个伟大的发明,它允许web开发者保留他们的用户的登录状态。然而,当你的站点或网络 有一个以上的域名时就会出现问题了。 在Cookie规范上说,一个cookie只能用于一个域名,不能够发给其它的域名。因此,如果在浏览器中对一个域名设置了一个cookie,这个cookie对于其它的域名将无效。如果你想让你的用户从...

经验教程

421

收藏

54

精华推荐

什么是.TEL域名

什么是.TEL域名

叫我大爷好不

域名查询代码公布

域名查询代码公布

木土158

php实现跨域名 Cookie

php实现跨域名 Cookie

别扭啊真

微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部