将http重定向到https IIS7

时间:2013-06-11 13:55:40

标签: c# asp.net iis iis-7

我正试图通过

强制任何用户使用我的网站
  

http://www.mysite.com

通过

路由
  

https://www.mysite.com

自动。

我已将以下标记添加到我的web.config:

<rewrite>
      <rules>
         http:// to https:// rule 
        <rule name="ForceHttpsBilling" stopProcessing="true">
          <match url="(.*)billing/(.*)" ignoreCase="true" />
          <conditions>
            <add input="{HTTPS}" pattern="off" ignoreCase="false" />
          </conditions>
          <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}{REQUEST_URI}" />
        </rule>
      </rules>
    </rewrite>

我在type =“redirect”行上收到一条消息说:

  

需要模块资格

我猜这意味着我需要引用一个程序集,或者“重写”节点需要在另一个父节点下,但无法弄明白/从Google获得答案。

该项目是ASP.Net,使用.Net 4.0

在IIS7中托管

1 个答案:

答案 0 :(得分:1)

试试这个:

<system.webServer>
  <rewrite>
    <rules>
      <rule name="Force HTTPS" stopProcessing="true">
        <match url="(.*)" ignoreCase="true" />
        <conditions>
          <add input="{HTTPS}" pattern="^OFF$" />
        </conditions>
        <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>

修改:刚看到您想要重定向所有请求,因此我删除了对“结算”的引用......

如果您想直接在IIS中执行此操作,则需要安装URL Rewrite Module