https到http重定向无法正常工作

时间:2013-06-05 05:13:41

标签: iis-7 url-rewriting

我正在尝试实现以下重定向。 https://abc.comhttp://www.abc.com

我已经使用了以下重定向规则,这适用于http非www到http www重定向,但它不适用于https非www到http www重定向。

<rule name="HttpsTOHttpRedirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{CACHE_URL}" pattern="^https://abc.com" />
</conditions>
<action type="Redirect" url="http://www.abc.com{REQUEST_URI}" />

请帮帮我。

1 个答案:

答案 0 :(得分:0)

您删除www的规则可能有效,但您可以对其进行优化。

要获得你想要的东西,你需要这两条规则:

<rule name="Redirect to HTTP" stopProcessing="true">
  <match url=".*" />
  <conditions>
    <add input="{HTTPS}" pattern="^ON$" />
  </conditions>
  <action type="Redirect" url="http://{HTTP_HOST}/{R:0}" />
</rule>
<rule name="Add www if missing">
  <match url=".*" />
  <conditions>
    <add input="{HTTP_HOST}" pattern="^www\." negate="true" />
  </conditions>
  <action type="Redirect" url="http://www.{C:0}/{R:0}" />
</rule>

第一条规则使用http重定向,如果它是https请求(使用反向引用保留原始网址:{R:0})。

第二条规则在www缺失时附加{R:0}(使用2个反向引用保留原始网址:{C:0}和{{1}})。