利用域名的泛解析加上IIS配置实现windows主机的二级域名转向

写在前面:

网站有N个客户,想给每个客户都配置独立的二级域名?想让别人访问二级域名就能达到你指定的某个网站的某个目录?你用的是IIS而不是apache?你不想一个二级域名就多配置一个网站吧?好吧,看完此文你就能实现这种效果了。(此文针对windows下的IIS Rewrite展开说明,apache的同理,但没IIS复杂。)

至于如何在windows下安装Rewrite实现URL重定向可看我之前写的文章:http://www.caijierui.com/blog/?p=26

原理:

利用泛域名的解析,在服务器进行URL转向处理并转向指定的目录。

我们需要什么?

拥有域名解析权限:你能管理自己的域名,能解析二级域名(如*.caijierui.com)

有用1台服务器 或 1个能让你配置IIS的虚拟空间(甭想了)

两个网站:1个空白默认80端口的网站 + 你的网站(如caijierui.com)

如何开始?

1:首先,我们要先配置域名,如你之前的网站caijierui.com的a解析是121.198.211.250。那么你需要进行泛域名解析,我知道你在问什么是泛域名解析(泛域名解析简单点说就是做个a记录,内容为:*.caijierui.com 121.198.211.250,这样一来我随便什么二级域名,如XX.caijierui.com xxxx.caijierui.com blog.caijieurui.com w32342.caijieuri.com都指向了121.198.211.250这台服务器)。

2:先ping一下,随便输入一个二级域名,测试下是否IP为你刚设置的A记录中的IP地址?如果是,咱们再继续第三步(A记录生效一般是10分钟-12小时不等- -这个我也不知道为啥,反正你就先等个半天一天的吧)

3:在IIS中配置一个空白网站(TCP端口默认80,主机头留空的网站)。网上很多教程都是说,必须整台服务器都只有你一个网站才能实现二级域名的跳转,实际上是不需要的。只要IIS中有1个是空白的网站即可。我们需要做的是,配置这个空白网站的Rewrite,让所有指向这台服务器的域名都能重定向。

4:下载mrewrite压缩包:http://pan.baidu.com/s/1kots1,然后配置空白网站在IIS中的ISPI筛选器,至于如何配置,请看:http://www.caijierui.com/blog/?p=26这篇文章,这里就不多说了,记得要重启iis。注意:如果你的网站之前已经做过IIS Rewrite设置了,请保持和网站的Rewrite非同一个(建议直接放到空白网站的根目录下)要不然会……出现无限循环。

5:打开httpd.ini,输入以下内容即可:

[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
#进行二级域名转向,所有域名都指向让类似这样的二级域名:xxx.caijierui.com 转向 www.caijierui.com/xxx/
RewriteCond Host: (.*)\.(.*)\.((com)|(com\.cn)|(com\.hk)|(cn))
RewriteRule (.*)$ http://www\.caijierui\.com/$1/ [I,R,L]

6:至此,配置完成,已能实现二级域名转向一级域名的某个目录。

后语:

大家也能看到,实际上那样设置还没法满足太多的商业要求?对吧,例如你想截取url的id值呢?你用Rewrite去实现,很麻烦- -还不如直接在默认网站底下用ASP或PHP文件来实现跳转,具体的大家可以自由发挥。以下放出比较简单的代码用PHP实现301跳转:

<?php
$the_host = $_SERVER['HTTP_HOST'];//取得当前域名
$the_ehost= $substr($the_host,0,$strripos($the_host,".caijierui"));//截取.caijierui.com前面的二级域名
$the_val = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';//判断地址后面部分
$the_val = strtolower($the_val);//将英文字母转成小写
if($the_val=="/index.php")//判断是不是首页
{$the_val="";//如果是首页,赋值为空}
if($the_ehost !== 'www')//如果域名不是带www的网址那么进行下面的301跳转
{
header('HTTP/1.1 301 Moved Permanently');//发出301头部
header('Location:http://www.caijierui.com'.$the_ehost."/".$the_val);//跳转到带www的网址
}
?>

 

原创文章,转载请注明: 转载自蔡洁锐的blog

本文链接地址: 利用域名的泛解析加上IIS配置实现windows主机的二级域名转向

利用域名的泛解析加上IIS配置实现windows主机的二级域名转向》上有25条评论

  1. wiecej pomocy

    Thank you for your entire work on this site. My aunt really likes managing investigation and it’s really easy to understand why. Most of us notice all regarding the dynamic mode you produce very useful secrets via your web blog and as well as inspire participation from some others about this subject so our favorite child is actually starting to learn a great deal. Take pleasure in the rest of the new year. You’re the one carrying out a really good job.

    [回复]

    回复
  2. zobaczysz tutaj

    Oh my goodness! an amazing article dude. Thank you However I am experiencing difficulty with ur rss . Don’t know why Unable to subscribe to it. Is there anybody getting equivalent rss downside? Anyone who is aware of kindly respond. Thnkx

    [回复]

    回复
  3. dom nad morzem

    That is the suitable weblog for anyone who desires to seek out out about this topic. You understand so much its almost exhausting to argue with you (not that I really would need…HaHa). You definitely put a new spin on a subject thats been written about for years. Nice stuff, simply great!

    [回复]

    回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>