IIS 8 URL重写模块,用于将非WWW重定向到WWW(具有子域的URL除外)

时间:2018-03-17 05:09:06

标签: iis subdomain iis-7.5 iis-8 url-rewrite-module

我将所有网站的非www版本的域重定向到www版。

然而,副作用是它还使用www

重定向子域

e.g。 api.example.com到www.api.example.com

这不是我想要的。我需要所有带子域的网站都不要添加www。

以下是我目前的规则:

{{1}}

如果输入不以'www'开头并且它不是子域,是否可以制定仅重定向到www.example.com的规则?

任何带子域的东西都不得添加www

请帮助,因为我已经尝试了两天没有成功。

提前谢谢!!

1 个答案:

答案 0 :(得分:2)

您需要将正则表达式更改为:^[^.]*\.[^.]{2,3}(?:\.[^.]{2,3})?$,此regexp将仅捕获二级域名。

我从这个回答中得到了它:https://stackoverflow.com/a/21174423/1954204

最后你的规则就是这样:

<rule name="non-www to www and https" enabled="true" stopProcessing="false">
    <match url=".*" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{HTTP_HOST}" pattern="^[^.]*\.[^.]{2,3}(?:\.[^.]{2,3})?$" />
    </conditions>
    <action type="Redirect" url="https://www.{HTTP_HOST}" />
</rule>