【IIS】在一台服务器上运行多个不同域名可访问的网站
背景
客户 A 的公司域名为 www.a.com,客户 B 的公司域名为 www.b.com,由于 IP 地址资源有限,只能将两个域名解析到同一个 IP 地址。
如何能在同一个 IP 地址上运行两个不同的网站,实现不同域名打开不同网站?
方案
- 在 IIS 上创建网站,在网站下创建应用程序 A 和应用程序 B。
- 使用 IIS URL Rewrite,实现对 www.a.com 的请求,响应应用程序 A;对 www.b.com 的请求,响应应用程序 B。
实现
- 下载并安装 IIS URL Rewrite
http://www.iis.net/downloads/microsoft/url-rewrite#additionalDownloads - 创建网站、应用程序 A 和应用程序 B。
- 配置 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>
- {HTTP_HOST} 为请求域名,注意大括号一定不能少,pattern 为正则表达式,此处不需要考虑 http://。
- {PATH_INFO} 为请求地址(域名除外),注意大括号一定不能少,negate 代表不包含。
- action url 为重写地址,{R:0} 为原始地址(域名除外)。
注意事项
- 配置中文域名时,{HTTP_HOST} 不能直接使用中文域名,可通过 IE 的开发者工具(F12)来查看实际的 HOST 值,然后再配置改域名为 condition。
posted on 2015-08-29 20:39 CsharpStyle 阅读(927) 评论(0) 编辑 收藏 举报