二级域名的完美实现

1、什么是二级域名,大家恐怕都很清楚,举个例子,比如www.fenlei123.cn一般当作一级域名,或者主域名,那么http://beijing.fenlei123.cn和http://shanghai.fenlei123.cn就是二级域名了。

二级域名的优势

实际上,对于搜索引擎来说,一般是把不同的二级域名当作不同的站点来看待的,也就是说在很大程度上可以把二级域名当作一个独立的站点来对待。所以,在搜索
引擎的排序权重里,对于二级域名给与很高的权重。更重要的一点是,大部分搜索引擎,特别是百度,基本会无条件收录二级域名。也就是说,你的二级域名虽然缺
少外链,他也可以给你收录,而对于普通的网页,收录起来就不那么痛快了。

二级域名的解析方法
   
基本上所有的dns都支持泛域名解析,所以,我们只要把泛域名解析到一个ip上就可以了。不过,这样有个问题,就是一般情况下,一个服务器只允许一个空主
机头,如果你的服务器已经有别的域名占用了这个空主机头,就需要在你的这个网站的主机头里写上所有可能的二级域名。所以,我们推荐使用独立服务器来实现泛
二级域名。

二级域名的asp.net重定向实现
    对于网站程序来说,二级域名的实现基本上都是通过重定向来实现的,对于使用asp.net的系统,我们使用下面的方式来实现(asp和其他的语言也都非常类似):
在global.asax文件里,截获Application_BeginRequest事件,重写如下:
string url = Request.Url.AbsoluteUri;
       
string strMatchDomain =
@"[url=http://(w{3}\.)?([^\.]*)[\.]*fenlei123\.cn]http://(w{3}\.)?([^\.]*)[\.]*fenlei123\.cn[/url]";
        string newUrl = "";
        string strDomain = Split2Info(url, strMatchDomain);
            if (strDomain != null && strDomain != "")
            {
                if (url.ToLower().EndsWith(@"default.aspx"))
                {
                      if(strDomain != "all")
                      {
                         newUrl = string.Format("[url=file://\\ParterSite.aspx?code={0]\\ParterSite.aspx?code={0[/url]}", strDomain);
                         this.Context.RewritePath(newUrl);
                       }
           }

给大家解释一下这段代码:

假如我们请求了这样一个地址:http://qingdao.fenlei123.cn,经过Split2Info()方法使用正则表达式处理后,会得到
fenlei123.cn前面的qingdao,也就是说,我们使用正则表达式得到了某个城市的名称.然后我们判断这个url是否是
default.aspx结尾的,因为所有的二级域名都是以default.aspx结尾的(针对这个网站),然后把这个url重定向也就是说这个就是最
终真正要执行的网页。
这样,我们通过泛解析和网页重形象就实现了泛二级域名,当然也可以通过别的方式实现,比如iis级别的dll重定向等。

2、二级域名的完美实现和实例

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com
其次,在 httpd.conf 中打开 mod_rewrite

之后,在 httpd.conf 的最后,添加以下内容:

RewriteEngine on
RewriteMap lowercase int:tolower
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1

其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
然后,在这个所在路径的目录下创建一个文件: vhost.map
内容为:

www.domain.com /usr/local/www/data-dist/domain
bbs.domain.com /usr/local/www/data-dist/bbs
anyname.domain.com /usr/local/www/data-dist/anyname

以上部分都是:" 域名+空格+绝对路径" 的形式。

最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
domain , bbs , anyname 等等,理论上可以无限。

这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。

时间: 2024-10-05 03:09:34

二级域名的完美实现的相关文章

Windows Server 2008 下解析二级域名的方法

昨天去了客户那里部署网站,用的是客户那边的windows server 2008. 本文主要以总结问题点的形式来说. 问题1:本机的数据库是SQL SERVER 2008R2,客户那边的数据库是SQL SERVER 2005 这个问题并不是特别好解决,尤其是不能用还原和附加数据库的方法去把数据库还原过去,因为SQL 2005不兼容2008的数据库. 首先我们来解决这个问题,这就要用到SQL SERVER 的导出(导入)数据,我们这里选择导出数据来进行演示(完美兼容). 首先选择要导出的数据库,假

阿里云Centos中二级域名绑定二级目录的方法

对于一些目录,我们往往需要对其指定二级域名,那么具体如何操作呢?下面,我将用亲身实践来说明一下. 由于第一次接触centos,我不得不借助于网络资源.然后得知要开启mod_rewrite这个模块,具体方法如下: 用文本编辑器打开Apache安装目录/etc/httpd/conf\httpd.conf,找到“#LoadModule rewrite_module modules/mod_rewrite.so”这行,去掉前面的“#”;继续查找“AllowOverride None”,修改为“Allow

Linux虚拟主机通过程序实现二级域名绑定到子目录

虚拟主机中CP控制台不支持将二级域名绑定到子目录的功能,用户可以通过程序实现将二级域名绑定到子目录. 有两种方法将二级域名绑定到子目录: 1. 配置.htaccess, 通过伪静态代码实现.具体实现方法参考:http://help.aliyun.com/knowledge_detail/6554929.html?spm=5176.7114037.1996646101.1.SkYPg8&pos=1 虚拟主机和轻云主机通过伪静态实现子目录绑定功能 万网虚拟主机.轻云主机均不支持通过控制台cp.hic

怎么将二级域名转到独立主机

怎么将二级域名转到独立主机,比如:我一个独立的站点 http://www.vsource.cn,,现在买了一个阿里云服务器,想把图片单独放到阿里云服务器上来,成立一个图片服务器http://img.vsource.cn 步骤: 1.在买的域名商那里更改解析 2.在阿里云服务器上的IIS新建站点,设置路径及主机名img.vsource.cn  (跟设置网站一样) 大功告成!  访问

顶级域名、二级域名

(1)      顶级域名(一级域名)如:.com..net..edu..gov..cn.等 (2)      整个DNS系统是由许多域名组成,每个域名下又细分更多的域,DNS域构成了层次树状结构自上而下分别是根域名.顶级域名.二级域名...最后是主机名 (3)      www.sina.com.cn--其中www.com.cn为新浪Web服务器域名,该域名是三级域名 为方便人们的记忆-Internet采用域名来标识计算机,通过DNS(域名系统)将域名翻译成IP地址,每一级域名都有对应的DNS

教程:如何让dnspod解析顶级二级域名到Openshift主域名

那么多人还用长长的openshift域名,如何让域名简单点呢? 还不如看我的!http://my.dot.tk 打开tk站(或者ml.cf等顶级二级域名),注册一个域名 下面有个绿色的,点击 没账号自己注册个,域名建议不要弄中文,看起来怪怪的,如果想用中文的,看另一个贴子 或者不用tk,用别的,像cf.ml等顶级2级域名都是可以的啊 打开dnspod解析 https://www.dnspod.cn 没账号自己注册个 然后回到我的域名,添加域名,添加域名不要打http://xxxx.tk/ 直接打

万网二级域名访问nginx子目录

最近重新安装了小站(1wei.cc)的wordpress,打算使用二级域名blog.1wei.cc访问位于根目录下的wordpress(/wordpress,对应1wei.cc/wordpress).于是开始各种搜索了,各种问答.文章.博客反复研究实验,好不折腾,谁叫咱们半路出家,好多不懂.不得不说:天下文章一大抄,大多数人不会抄,抄了也不知道注明转载,好歹写错了可以说,这不是老子写的.找到好多人写(抄)的一模一样文章解决不了问题,不过我等开始看的时候还是不明所以得称赞高级.弄完了发现也挺简单的

Nginx根据目录自动生成二级域名

前言:     每次创建二级域名如果都修改一次配置文件的话,项目多了会带来很多不必要的工作量,如果能够在一个web目录下创建一个文件夹并且自动生成文件目录的话,那真是极好的,本文就基于Nginx贴出这个配置文件. 实验环境(基于阿里云):     阿里云CentOS-6.5     domain.com 域名管理权限 正文:     首先需要在域名管理处做一个泛解析 把*.domain.com 指向你自己的服务器的ip,然后在Nginx配置文件里面增加配置,这个配置还可以制作三级域名,例如*.d

nigix 二级域名

鼓捣了两天服务器,在digitalocean上买的,挺好用,性价比也高. 弄了VPN,shadowsockets,OpenVPN,我本来以为VPN可以提供网络接入的,实在是图样图森破了. 搭服务器使用的lnmp,nginx是第一次玩,有很多坑,这个废了好大得劲才搞好. 这篇主要写nginx的一二级域名跳转问题. 我申请了kiscall.top域名,这里写domain.com. 默认配置后访问domain.com会访问/usr/share/nginx/html目录,改的方法很简单: vim /et