在IIS中重写子域

时间:2011-10-13 17:07:40

标签: url-rewriting iis-7.5 subdomain

我在IIS中重写一些东西时遇到了一些麻烦

这是我想要实现的目标。

我们有很多客户都需要子域名。例如

http://clientA.mysite.com需要重写为http://mysite.com/clientArea/?clientID=1234

然后,所有内容都需要重新写入http://mysite.com/clientArea/XXX

因此,例如,如果某人请求http://clientA.mysite.com/example.css,则应将其重写为http://mysite.com/clientArea/example.css

我无法为我的生活做好这项工作。

我想我必须在2条规则中这样做。我认为我的第一条规则工作有点(页面看起来很糟糕,因为它无法获取JS文件或CSS文件使其看起来正确)

以下是我将http://clientA.mysite.com重写为http://mysite.com/clientArea/?clientID=1234

的第一条规则
<rule name="Rewrite Subdomain" stopProcessing="true">
     <match url="()" />
     <conditions>
         <add input="{HTTP_HOST}" pattern="^(?!www)clientA\.mysite\.com$" />
     </conditions>
     <action type="Rewrite" url="clientArea/?clientID=1234" appendQueryString="true" logRewrittenUrl="true" />
 </rule>

然而,我的第二条规则,我无法开始工作,所以对此的任何帮助都会很棒

<rule name="Rewrite Everything Else after subdomain">
    <match url="(.*)" />
    <conditions>
       <add input="{HTTP_HOST}" pattern="^(?!www)clientA\.mysite\.com$" />
    </conditions>
    <action type="Rewrite" url="{R:0}" />
 </rule>

请求http://clientA.mysite.com/example.js之类的内容会返回404错误。

感谢您的时间, 凯尔

2 个答案:

答案 0 :(得分:0)

如果您的站点有专用的IP号,则可以在IIS中为您的站点添加空的http绑定(在IIS中右键单击您的站点&gt;编辑绑定&gt;添加)。然后在DNS配置中添加值为:*的DNS“A”记录。因此,您网站的每次通话都将由您的网站维护。

答案 1 :(得分:-1)

您可以在入站和出站重写规则以及应用程序请求路由模块中使用组合。

入站规则将子文件夹代理到子域内容。出站规则检查响应并使用子文件夹路径替换响应中子域的所有实例。