我尝试像下面这样重写url
。
mail.test.com
必须重定向到https
。除了test
以外,http
也可以。
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^mail\.test\.com$" />
</conditions>
<action type="Redirect" url="https://mail.test.com/{R:1}" />
但是我得到一个错误:
页面重定向不正确
连接到mail.test.com时发生错误。
有时可能是由于禁用或拒绝接受Cookie引起的。
SSL证书和其他证书都可以。如果我不编写此规则,则它适用于https
,但其他规则也会重定向到https
。我在这里想念什么?
答案 0 :(得分:1)
请尝试以下操作。当我对链接到IIS中单个网站的不同域进行快速测试时,它起作用了。
<rule name="HTTP to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^(mail\.test\.com)$" />
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://mail.test.com/{R:1}" />
</rule>
使用重定向规则时,最好在每次更改后清除浏览器缓存。否则,浏览器将使用来自缓存的旧重定向。大部分浏览器缓存数据都可以通过 Ctrl + Shift + Del 清除。
答案 1 :(得分:0)
请尝试这样。
<rewrite>
<rules>
<clear />
<rule name="Redirect to https" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTPS}" pattern="mail\.test\.com$" />
</conditions>
<action type="Redirect" url="https://mail.test.com/{R:1}" />
</rule>
</rules>
</rewrite>
注意:请使用chrome:// net-internals清除缓存