【发布时间】:2016-09-16 14:22:19
【问题描述】:
在创建两个 IIS URL 重写规则后,我需要避免双重重定向:
1) 将 www 重定向到非 www。
2) 将 HTTP 重定向到 HTTPS。
这是我的代码:
<rule name="Redirect to https" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
</rule>
<rule name="CanonicalHostNameRule1" enabled="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" matchType="Pattern" pattern="^mydomain\.com$" ignoreCase="true" negate="true" />
</conditions>
<action type="Redirect" url="https://ABC/{R:1}" />
</rule>
(ABC 是 mydomain.com 名称,但我必须更改它才能发布问题)
问题是,如果我转到 www,它会进行两次重定向,一次从 www 到非 www,第二次从 http 到 https。
我也尝试过在两种条件下都只使用一个规则,但结果并不好。
有没有办法只做一次重定向?
【问题讨论】:
-
您可以通过您的 DNS 配置将 www 重定向到非 www,仅供参考...我不认为这被视为重定向。