IIS 重写规则以强制执行 HTTPS 和几个规范域之一

IIS rewrite rules to enforce HTTPS and one of several canoncial domains

我正在查看的网站有多个规范域 - 例如

example.com
example.com.au
example.co.nz

以及一些 'other' 需要重定向到规范域之一的域(例如 example.us 应该转到 example.com)。

应通过 HTTPS 访问所有站点

是否可以为每个规范域编写一个简明的规则,将用户重定向到该域 iff

我想我可以看到如何用多个规则来做,但它很快就会变得繁琐(所以简洁的规则会更好)

我通过以下方式实现了它(使用 # 分隔符将多个变量推入 input):

<rule name="Redirect to example.co.nz" enabled="true" stopProcessing="true">
  <match url="(.*)" />
  <conditions  logicalGrouping="MatchAll">
    <add input="{HTTPS}#{HTTP_HOST}" pattern="(^OFF)|(^.*#www\.)" />
    <add input="{HTTP_HOST}" pattern="^(www\.)?example.co.nz$" />
  </conditions>
  <action type="Redirect" url="https://example.co.nz/{R:1}" />
</rule>