IIS重写 - 添加WWW但不添加到子域

时间:2016-04-24 22:07:42

标签: mod-rewrite iis

我运行的是一项在线服务,我最近添加了一个AWS Load Balancer。

之前,一切都在没有www的域上运行,但由于AWS ELB可以更改其IP,我们必须使用CNAME记录而不是A记录运行设置。 CNAME记录不能指向根域。所以我必须将所有内容重写为www。

我们有多个客户,其中约50%使用自己的域名,其余客户作为我们主域的子域名运行。

我需要的是:

example.com -> www.example.com  
www.example.com -> www.example.com  
customer1.ourdomain.com --> customer1.ourdomain.com  
customer2.ourdomain.com --> customer2.ourdomain.com

我不是最好在web.config中设置IIS重写规则,但我希望有人能指出我正确的解决方案。

之前我们一直在运行这个,删除www,但现在我需要相反。

    <rule name="Remove www" stopProcessing="true">
      <match url="(.*)" ignoreCase="true" />
      <conditions logicalGrouping="MatchAll">
        <add input="{HTTP_HOST}" pattern="^www\.(.+)$" />
      </conditions>
      <action type="Redirect" url="http://{C:1}/{R:0}" appendQueryString="true" redirectType="Permanent" />
    </rule>

一切都在运行http(暂时)。

1 个答案:

答案 0 :(得分:0)

    <rule name="Add www">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^ourdomain\.com" />
      </conditions>
      <action type="Redirect" url="http://www.{HTTP_HOST}{UNENCODED_URL}" redirectType="Permanent" />
    </rule>