0

我试图强迫任何用户通过调用我的网站

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" 行收到一条消息:

需要模块资格

我猜这意味着我需要引用一个程序集,或者“重写”节点需要位于另一个父节点下,但无法弄清楚/从谷歌获得答案。

该项目是 ASP.Net,并使用 .Net 4.0 在 IIS7 中托管

4

1 回答 1

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 重写模块

于 2013-06-11T13:59:00.050 回答