【IIS】在一台服务器上运行多个不同域名可访问的网站

背景

客户 A 的公司域名为 www.a.com,客户 B 的公司域名为 www.b.com,由于 IP 地址资源有限,只能将两个域名解析到同一个 IP 地址。

如何能在同一个 IP 地址上运行两个不同的网站,实现不同域名打开不同网站?

 

方案

  1. 在 IIS 上创建网站,在网站下创建应用程序 A 和应用程序 B。
  2. 使用 IIS URL Rewrite,实现对 www.a.com 的请求,响应应用程序 A;对 www.b.com 的请求,响应应用程序 B。

 

实现

  1. 下载并安装 IIS URL Rewrite
    http://www.iis.net/downloads/microsoft/url-rewrite#additionalDownloads
  2. 创建网站、应用程序 A 和应用程序 B。
  3. 配置 URL Rewrite:
    http://weblogs.asp.net/owscott/iis-url-rewrite-hosting-multiple-domains-under-one-site

 

配置项说明

<rewrite>
     <rules>
         <rule name="site2.com" stopProcessing="true">
             <match url=".*" />
             <conditions>
                 <add input="{HTTP_HOST}" pattern="^(www.)?site2.com" />
                 <add input="{PATH_INFO}" pattern="^/site2/" negate="true" />
             </conditions>
             <action type="Rewrite" url="\site2\{R:0}" />
         </rule>
     </rules>
 </rewrite>
  1. {HTTP_HOST} 为请求域名,注意大括号一定不能少,pattern 为正则表达式,此处不需要考虑 http://。
  2. {PATH_INFO} 为请求地址(域名除外),注意大括号一定不能少,negate 代表不包含。
  3. action url 为重写地址,{R:0} 为原始地址(域名除外)。

 

注意事项

  • 配置中文域名时,{HTTP_HOST} 不能直接使用中文域名,可通过 IE 的开发者工具(F12)来查看实际的 HOST 值,然后再配置改域名为 condition。

 

posted on 2015-08-29 20:39  CsharpStyle  阅读(927)  评论(0编辑  收藏  举报