强制对 IIS 上的所有 http 请求进行 https 重定向
Force https redirect on all http requests on IIS
我想强制所有的 http 请求重定向到 https,所以我现在有这个规则:
<rules>
<clear />
<rule name="force https" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP}" pattern="on" ignoreCase="true" />
<add input="{HTTP_HOST}" pattern="(sitea\.com)|(sitea\.uk)|(sitea\.org)" negate="true" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
</rule>
</rules>
但是当我请求 http://www.sitea.com
时,它不会重定向到 https://www.sitea.com
。
(旁注:我也想知道这是否对 SEO 有任何负面影响)
这就是我们使用的
<rule name="httpsredirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}/{R:1}" />
</rule>
我可以看到一些差异 - 我们有 {R:1} 而您有 {REQUEST_URI} 我们只输入了一个关闭 https 的条件,因此只有 http 被重定向,这也许是你哪里错了。
至于 SEO - 这是一个很大的主题 - 但由于您正在进行永久重定向,搜索引擎将认识到这一点并从其索引中删除 url,并改用 https。
我想强制所有的 http 请求重定向到 https,所以我现在有这个规则:
<rules>
<clear />
<rule name="force https" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP}" pattern="on" ignoreCase="true" />
<add input="{HTTP_HOST}" pattern="(sitea\.com)|(sitea\.uk)|(sitea\.org)" negate="true" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
</rule>
</rules>
但是当我请求 http://www.sitea.com
时,它不会重定向到 https://www.sitea.com
。
(旁注:我也想知道这是否对 SEO 有任何负面影响)
这就是我们使用的
<rule name="httpsredirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}/{R:1}" />
</rule>
我可以看到一些差异 - 我们有 {R:1} 而您有 {REQUEST_URI} 我们只输入了一个关闭 https 的条件,因此只有 http 被重定向,这也许是你哪里错了。
至于 SEO - 这是一个很大的主题 - 但由于您正在进行永久重定向,搜索引擎将认识到这一点并从其索引中删除 url,并改用 https。