欢迎光临

木子屋

标题: 什么是泛域名

作者: admin

日期: 2006-06-28 09:15 AM

分类: 服务器

内容: 第一步：泛域名的解析
首先我要给大家讲一个故事：故事的内容是“泛域名”。从前啊，有个小朋友叫做“泛域名”，泛域名是谁家的小孩呢？知道DOS 伯伯吗？唉～～对了，泛域名就是DOS 伯伯的表兄的外甥的朋友，DOS有个儿子叫做“通配符”，比如你在计算机中查找一个文件，你打上ice*.*，它就会把什么icech.sys 呀，icech.old呀，icecream.eat等文件统统查找出来。
“泛域名”就是这个样子的，就像“*.icech.com”。那么泛域名有什么功用呢？这么说吧，
你在DNS 中建立一个名为“*.icech.com”的泛域名，那么所有就像www.icech.com、news.icech.com、love.icech.com 等等格式的域名都不用建立就会自动生效，他们都会指向建立此泛域名时指向的IP 地址。如果你申请了一个域名，通过这样的测试，你就会知道你申请的域名是不是泛域名了。不过一般的申请域名的时候如果我做特殊要求，ISP接入商是不提供此项服务的，如果你想解析一下，“呵呵，哈哈，掏钱来”！
建立泛域名的大致步骤是：
1、进入DNS，选“正向查找区域”，单击右键，新建“区域”，输入“icech.com”（你写你自己的域名啊，不要乱用我的域名）
2、选中“icech.com”，单击右键，新建“域”，输入“*”
3、选中“*”，新建“主机”，主机名保持为空，输入相应的IP 地址就OK了。
简单！EASY！你又该说了，悟空，不要大吵大嚷的嘛！小心吓了那些花花草草的。后面的才是关键呢。
第二步：利用程序来完成虚拟域名的解析
假设我们希望设置一个news.icech.com 的域名，当我们在浏览器中输入“news.icech.com”的域名时，他会转向它的真实地址htttp://www.weste.net/index.htm。一般流程肯定就是，它会首先找到DNS 服务器，并且进行域名与IP 地址的转换，这里因为我们已经设置了泛域名，news.icech.com 就会直接指向icech.com 指向的IP，这之间我们不能做什么其他的设置来改变这一流程。那么我们所要做的就是在这个IP 地址所对应主机的默认WEB页面上做文章，让不同的子域名进行URL重定向，转到它们所希望的URL 网址上去。
1、设置icech.com所在主机所默认的WEB服务的默认文档为index.asp、index.php
或者index.cgi等动态页面，而不能是静态的index.htm 页面。
2、通过ASP、PHP或者CGI程序来进行URL的重定向功能
(1)index.php
=; //取得用户所访问的域名全称
=eregi_replace('.icech.com', '', ); //截取域名全称，获取用户所要访问的三级域名，获取所访问的域名全称，可以直接使用PHP系统变量 或 者，注意引用系统内部变量必须大写。事实上PHP 系统内部已经对用户浏览器发送的访问请求头信息进行了全面的分析，并分割成、保存成相应的系统变量，以方便程序使用。第二个语句使用正则替换，查找“.icech.com”并替换成空字符，这样就获得了三级域名。
通常，一个大型的虚拟域名服务都是将用户子域名和其对应URL放在数据库里，这样， 用户可以随时注册新的三级域名和更改域名对应的URL，那么下面的工作就是从数据库中检索出该三级域名对应的URL（数据库检索程序略）。
...... //根据三级域名检索数据库，并得到变量，其中存放了该域名对应的URL 地址Header("Location: "); //系统重定向，使用户浏览器转向相应URL获得了对应URL 地址之后，我们可以使用PHP的header函数给用户浏览器发送一个重定向信息，让用户转移到相应的URL地址，这样一个完整的虚拟域名服务过程就结束了。
这里我们需要注意的是header函数之前，不能对浏览器有任何输出，否则会产生错误，另外重定向操作中的URL地址应该表述完整，例如：http://www.weste.net/index.htm广告窗口的弹出：常见的虚拟域名服务通常会有弹出广告窗口，是怎么实现的呢？为了能统一控制，必须在重定向用户浏览器之前弹出这个广告框，那么重定向操作就不能简单地使用header函数了，因为这个函数要求使用前不能对浏览器有任何输出。要实现它，我们必须改变方法：
...... //根据三级域名检索数据库，并得到变量，其中存放了该域名对应的URL 地址
echo '<script language="javascript">window.open("adv.htm");</script>';
//输出一段javascript代码，用以打开一个广告窗口，显示广告页adv.htm
echo '<meta http-equiv="refresh" content="0;URL='..'">';
//使用HTML的meta 语句来实现系统重定向，让用户浏览器转向相应URL。
(2)index.asp
<% name=request.querystring("name") %> ‘这样来获取用户所访问的域名全称
trim(name) ‘用trim 函数来截取域名全称，获取用户所要访问的三级域名与数据库对比，如果与数据库所设置的虚拟域名相同，则直接用response.redirect 转向http://www.weste.net/index.htm页面，否则设定另外转向页面。
具体的设计原则就是这些了，其他的就十分简单了，虚拟域名最重要的在于一个思路，
这和我们平时编写程序一样，一个功能的实现并不一定要很高深的技术，成功的关键在于“开动你的头脑”!

+ 查看当前日志评论 (1)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.145 ms

返回

标题: 什么是泛域名

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.145 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.160 ms

返回