`
Ryee
  • 浏览: 275369 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

独立二级域名实现方法

阅读更多
随着优化的深入和互联网的成熟,二级域名对于独立作者和网站主域名之间的关系越来越微妙;这种演变的趋势将逐步成熟起来。

在je里面看了很多人来解析博客二级域名的实现机制,很是受用!

这里转载一步分在汇总一些做为备份。

★★★ 引用转载部分这里是使用tomact方式实现:《 http://stephen830.iteye.com/blog/277522 》★★★

开始之前,首先来认识下什么是2级域名?

一般我们注册一个域名,比如 www.iteye.com (以下内容均以iteye.com域名为例子,当然这只是example,该域名早已被注册了!),那么这个就是你的1级域名(顶级域名),是固定的并且只有1个,而像 robin.iteye.com,stephen830.iteye.com等等就是你这个1级域名下的2级域名了。因此,每个1级域名下面可以拥有无数个2级域名,只要你的名字符合国际域名名称定义规则。

现在越来越多的网站提供2级域名的功能,就如JavaEye,只要您注册成为用户,您就可以当场得到一个属于自己的2级域名。可能,或许您觉得这其中很神秘,以为这个功能实现会比较复杂,其实不然,看完了本篇文章,相信您也可以轻而易举打造自己的动态2级域名效果了。

下面就让我们一步步来看看如何实现的吧!

第1步您要准备一个1级域名(国际域名,国内域名都可以),并且您域名所在的dns服务器要支持域名泛解析功能,拿iteye.com来说,泛解析就是 a.iteye.com/b.iteye.com/c.iteye.com/...,所有这些都指向iteye.com设置的同一个ip 地址,有了这个功能,域名才能够实现动态2级域名。一般域名服务商的dns服务器都有这个功能。



您只需要在域名的配置中增加一条*.开头的记录,就可以实现泛解析了。配置完后,你可以用ping命令测试下,假设你的域名是 iteye.com,你可以运行 ping a.iteye.com,如果通的话就表示支持泛解析了。(当然,要注意有的主机服务器屏蔽ping回显!)

第2步 准备好你的WEB应用,这里使用了tomcat,可以在tomcat的server.xml配置文件中进行配置:

Xml代码
<Host name="localhost" debug="0" appBase="/www/doc" unpackWARs="true" autoDeploy="true">
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs"  prefix="www." suffix=".txt" timestamp="true"/>
</Host>

<Host name="localhost" debug="0" appBase="/www/doc" unpackWARs="true" autoDeploy="true">
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs"  prefix="www." suffix=".txt" timestamp="true"/>
</Host>

其中的appBase配置自己WEB应用的位置,name="localhost",表示根目录,所有访问本主机的将自动转到appBase配置的应用上。假设您的域名主机地址为 202.109.xx.xx,那么直接在浏览器中输入http://202.109.xx.xx 就会默认打开您在上面配置的那个web应用,这个在你的主机上有多个WEB应用的时候要小心。您在增加其他独立的WEB应用(假设还有个WEB应用是 www.xxx.com)时需要像下面这样的配置:
Xml代码
<Host name="www.xxx.com" debug="0" appBase="/www/doc/xxx" unpackWARs="true" autoDeploy="true">
        <Logger className="org.apache.catalina.logger.FileLogger" directory="logs"  prefix="www.xxx.com." suffix=".txt" timestamp="true"/>
</Host>

<Host name="www.xxx.com" debug="0" appBase="/www/doc/xxx" unpackWARs="true" autoDeploy="true">
        <Logger className="org.apache.catalina.logger.FileLogger" directory="logs"  prefix="www.xxx.com." suffix=".txt" timestamp="true"/>
</Host>


这个独立的www.xxx.com则必须使用域名来访问,不能使用网站ip地址来访问。



第3步 为了更好的展现动态2级域名效果,使用一个frame作为WEB应用的index.html,这个index.html将作为你的WEB应用的首页面。(备注:这个index.html不是必须的,只是为了让浏览器的地址栏显的更加好看而已)

index.html

Html代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>-</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<head>
<frameset framespacing="0" border="0" rows="0,*" frameborder="0">
  <frame name="" noresize scrolling="no" target="_self" src="" frameborder="0" marginheight="0" marginwidth="0">
  <frame name="" scrolling="auto" target="_self" src="index.jsp" frameborder="0" marginheight="0" marginwidth="0">
  <noframes>
    <body>
    <p>您的浏览器版本太低,需要升级后才能使用本系统!</p>
</body>
  </noframes>
</frameset>
</html>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>-</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<head>
<frameset framespacing="0" border="0" rows="0,*" frameborder="0">
  <frame name="" noresize scrolling="no" target="_self" src="" frameborder="0" marginheight="0" marginwidth="0">
  <frame name="" scrolling="auto" target="_self" src="index.jsp" frameborder="0" marginheight="0" marginwidth="0">
  <noframes>
    <body>
    <p>您的浏览器版本太低,需要升级后才能使用本系统!</p>
</body>
  </noframes>
</frameset>
</html>

第4步 实现动态的2级域名。

假设用户在网站(www.iteye.com)上注册一个用户后,用户名比如为 test,那么只要在浏览器中输入 test.iteye.com后,就会进行如下的处理。

输入 test.iteye.com , 首先会解析 test.iteye.com 这个2级域名的ip地址,这样就像输入 http://202.109.xx.xxx/ 一样的效果 (假设 iteye.com的ip为202.109.xx.xxx);然后就会去访问这个域名对应WEB应用的首页面,也就是上面配置的 index.html,然后会调用下面的index.jsp

这个jsp才是真正负责进行动态2级域名解析并处理的 index.jsp

Html代码
<%@ page contentType="text/html;charset=UTF-8"%>
<% 
    String host = request.getHeader("Host").trim();//获得来访者的域名信息,这里如果是2级域名,就会得到例如 test.iteye.com, test就是注册用户名 
    String[] hosthosts = host.split("[.]"); 
    if(hosts.length==3){//只处理长度为3的信息 
        if("javaeye".equals(hosts[1])&&"com".equals(hosts[2])){//判断是否是iteye.com的2级域名 
            String name = hosts[0].trim(); 
            if(!"www".equals(name)){//www是域名本身用的,不能用于表示2级域名,所以在用户注册的时候像www,ftp,mail,smtp,pop等关键词不要被用户注册到。 
                //在这个位置还需要用个方法来校验下name是否合法,比如name必须是网站的注册用户,将name与网站的用户表数据进行校验 
                //校验通过后,转到对应的处理页面               response.sendRedirect("self.jsp?name="+name);//2级域名转向到指定的一个处理文件,如这里是self.jsp 
                return; 
            } 
        } 
    } 
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>--</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#ffffff" topmargin="80px" leftmargin="20px" rightmargin="20px">
<!--网站首页面内容-->
</body>
</html>

<%@ page contentType="text/html;charset=UTF-8"%>
<%
String host = request.getHeader("Host").trim();//获得来访者的域名信息,这里如果是2级域名,就会得到例如 test.iteye.com, test就是注册用户名
String[] hosts = host.split("[.]");
if(hosts.length==3){//只处理长度为3的信息
if("javaeye".equals(hosts[1])&&"com".equals(hosts[2])){//判断是否是iteye.com的2级域名
String name = hosts[0].trim();
if(!"www".equals(name)){//www是域名本身用的,不能用于表示2级域名,所以在用户注册的时候像www,ftp,mail,smtp,pop等关键词不要被用户注册到。
//在这个位置还需要用个方法来校验下name是否合法,比如name必须是网站的注册用户,将name与网站的用户表数据进行校验
//校验通过后,转到对应的处理页面 response.sendRedirect("self.jsp?name="+name);//2级域名转向到指定的一个处理文件,如这里是self.jsp
return;
}
}
}
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>--</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#ffffff" topmargin="80px" leftmargin="20px" rightmargin="20px">
<!--网站首页面内容-->
</body>
</html>

这样,就可以轻轻松松地实现了动态2级域名功能了。


最后的说明:本文只是一篇实现动态2级域名的启蒙文章,希望能告诉所有的朋友,动态2级域名其实一点也不复杂,只是你目前可能没有找到方法,说穿了就大家都明白了。
如果要将动态2级域名商业化/产品化,还需要进一步改善,改善方法大家可以在网上找找资料。基本上每个WEB容器都有自己特定的一些配置来实现这个功能。

apach方案:
Apache设置:
<VirtualHost *:80>
ServerName union.abc.com
ServerAlias *.test.org
DocumentRoot "D:\mywork\Test\ROOT"
<Directory "D:\mywork\Test\ROOT">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
DirectoryIndex index.htm
</VirtualHost>


方法总结:
主要先做泛域名解析。(域名注册商)

A记录新增*.xxx.com->xxx.com

好了,所有你的页面全部解析到xxx.com。就是说你用aaa.xxx.com. bbb.xxx.com都进到xxx.com得默认首页去了,这样就OK乐。

然后是通过request.getRequestURI()把请求URL得到然后split("."),再把得到的aaa,bbb,比对数据库,然后foward到对应的url去,OK.

分享到:
评论
1 楼 gaobusi 2010-08-08  

相关推荐

    彩虹聚合二级域名DNS管理系统源码v1.3

    聚合DNS管理系统可以实现在一个网站内管理多个平台的域名解析, 目前已支持的域名平台有:阿里云、腾讯云、华为云、西部数码、CloudFlare。 本系统支持多用户,每个用户可分配不同的域名解析权限;支持API接口, ...

    九酷网络二级域名注册系统

    九酷网络自主开发,使用asp+acess技术,结合本系统可以开展二级域名注册业务。 系统公告功能 可添加多个域名 隐藏URL功能 可以禁止特殊域名申请 可人工审核或通过邮箱激活 可以设置是否隐藏真实URL 可设置某...

    Comb:SaaS服务架构,实现服务版本管理、动态的二级域名跟客户容器的对应关系、服务不中断灰度升级、用户资源动态扩容

    新增或者修改客户二级域名代理时,不会中断对外服务(不重启Nginx) 简单讲每个二级域名请求可被直接代理到内网服务器集群中的指定容器和端口上 架构拓扑图如下所示 快速开始 注意,开始搭建此架构前,你需要具备...

    二级域名虚拟主机版 v1.9s 淘宝拍拍版.rar

    系统可实现对各种域名的转向解析服务,只要您有独立的顶级域名,一个asp空间(需access支持) 确认有顶级域名的管理权限以及可支持泛解析,具体事宜您可以联系您的域名注册商进行域名泛解析。 支持(....

    一个空间放多个网站(多域名绑定到同一空间不同目录.rar

    关于apache域名绑定问题,Apache通过Rewrite实现绑定多个域名,如何在一个空间上建立多个相互独立的网站,怎样在一个虚拟主机空间上放多个网站,在一个服务器上设置多个网站

    域名授权管理系统网络公司客户管理 v6.0

    即可对网站实现远端授权管理,灵活的授权验证方式,满足不同的授权管理:1、域名+时间双重验证2、仅域名验证(可同时授权二个域名使用,时间验证失效)3、仅时间验证(域名验证失效,可选择到期后是直接关闭,还是仅...

    科迈动态域名TrueHost v1.00b Build 336(内网版)

    功能特点:免费动态二级域名解析;动态顶极域名、独立域名解析;支持公网与内网接入方式;支持主流的各种操作系统;离线功能。全新的内网专业版:不需要端口映射,网站的安装设置与公网网站一样方便;彻底支持TCP与...

    科迈动态域名TrueHost v1.00a build 125(内网版)

    功能特点:免费动态二级域名解析;动态顶极域名、独立域名解析;支持公网与内网接入方式;支持主流的各种操作系统;离线功能。全新的内网专业版:不需要端口映射,网站的安装设置与公网网站一样方便;彻底支持TCP与...

    聚合DNS管理系统 彩虹聚合二级域名DNS管理系统源码v1.3 dns管理器 dns按分层管理 dns管理控制台.zip

    聚合DNS管理系统可以实现在一个网站内管理多个平台的域名解析, 目前已支持的域名平台有:阿里云、腾讯云、华为云、西部数码、CloudFlare。 本系统支持多用户,每个用户可分配不同的域名解析权限;支持API接口, ...

    酒店php源码

    1、统一了标准版和独立版,方便各种环境下的安装部署(二级目录,二级域名,独立域名)。 2、升级了框架核心,速度更快。 3、模板标签化,功能堪比织梦、PHPCMS,方便大家做差异化网站。 4、实现模板的前后分离,支持...

    疯群系统独立3.1.2

    3、代理享受推广用户所有付费提成,二级佣金 很多小伙伴们,通这个源码赚到了人生桶金!!! =================================================== 搭建需要准备服务器一台(虚拟空间不行) 微信可以访问...

    免费开源的CMS(We7.CMS)

    支持DNS 域名解析服务,解决IDC 以及集群一级域名、二级域名指向服务 支持不同站点不同的站点管理员设置,圆满解决安全与权限问题 支持站点文件上传安全限制、空间限制、站点日志限制、自动报警,实现站点无人值守...

    人脉社群系统带流量主小程序源码独立版

    3、代理享受推广用户所有付费提成,二级佣金 很多小伙伴们,通这个源码赚到了人生桶金!!! =================================================== 搭建需要准备服务器一台(虚拟空间不行) 微信可以访问的域名...

    全网独家3.1.2版本独立微信社群人脉系统社群空间站最新源码开源超级详细教程

    3、代理享受推广用户所有付费提成,二级佣金 很多小伙伴们,通这个源码赚到了人生桶金!!! =================================================== 搭建需要准备服务器一台(虚拟空间不行) 微信可以访问的域名...

    宝塔自助建站源码 PagodaSelfhelpStationBuildingSourceCode.rar

    一款全开源的自助建站系统,可以自助制作一些常见的网站系统,用户通过前台注册,然后在线购买模板,一键完成建站,所安装的模板都是在后台添加的服务器上面,域名用的是泛解析的二级域名,有需要的可以学习研究!...

    威盘音乐外链 1.8

    修改因为二级域名而出现地址不正确的问题! 全新体验! 修复验证码正确后部分网页不能播放问题! 增加首页留言功能,提高访客互动效率! 增加微博通同步功能,十多家热门微博网同时同步! 增加网页背景图片,提高...

    住哪网酒店预订程序.rar

    1、统一了标准版和独立版,方便各种环境下的安装部署(二级目录,二级域名,独立域名)。 2、升级了框架核心,速度更快。 3、模板标签化,功能堪比织梦、PHPCMS,方便大家做差异化网站。 4、实现模板的前后分离,...

    人脉社群系统带流量主小程序源码独立版.zip

    3、代理享受推广用户所有付费提成,二级佣金 很多小伙伴们,通这个源码赚到了人生桶金!!! =================================================== 搭建需要准备服务器一台(虚拟空间不行) 微信可以访问的域名...

    住哪网酒店预订程序 x3.0

    1、统一了标准版和独立版,方便各种环境下的安装部署(二级目录,二级域名,独立域名)。 2、升级了框架核心,速度更快。 3、模板标签化,功能堪比织梦、PHPCMS,方便大家做差异化网站。 4、实现模板的前后分离,...

Global site tag (gtag.js) - Google Analytics