URL 在 IIS 中重写并出错 'The page isn’t redirecting properly'

URL Rewrite in IIS and error 'The page isn’t redirecting properly'

我尝试像下面这样重写 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}" />

但是我得到一个错误:

The page isn’t redirecting properly

An error occurred during a connection to mail.test.com.

This problem can sometimes be caused by disabling or refusing to accept cookies.

SSL证书等即可。如果我不写这条规则,它适用于https,但其他人也会重定向到https。我在这里缺少什么?

请尝试以下操作。当我在 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.

清除

请这样尝试。

<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清除缓存