【问题标题】:IIS rewrite rules to enforce HTTPS and one of several canoncial domainsIIS 重写规则以强制执行 HTTPS 和几个规范域之一
【发布时间】:2018-09-17 01:18:06
【问题描述】:
我正在关注的网站有多个规范域 - 例如
example.com
example.com.au
example.co.nz
以及一些需要重定向到规范域之一的“其他”域(例如,example.us 应该转到 example.com)。
所有网站都应通过 HTTPS 访问
是否可以为每个规范域编写一个简洁的规则,将用户重定向到该域 iff
- 它们不在规范域中(例如
www.example.com、example.us)或
- 连接不是 HTTPS
我想我可以看到如何使用多个规则来做到这一点,但它很快就会变得繁琐(所以简洁的规则会更好)
【问题讨论】:
标签:
iis
http-redirect
url-rewrite-module
【解决方案1】:
我通过以下方式实现了它(使用# 分隔符将多个变量推入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>