0

我尝试了几乎所有与 http 到 https 重定向的 web.config 更改相关的赞成建议。在 asp.net 中强制整个站点使用 https 的最佳方法是什么?

但它不适用于我的 ASP.net 网站。我使用 GoDaddy 共享主机,并且我的帐户中有多个站点。我只为一个网站启用了 ssl,并且必须将其添加到过滤器中,以便同一帐户中的其他网站不会重定向到 https。这是我的 web.config:

<rewrite>
  <rules>
    <rule name="HTTP to HTTPS redirect" stopProcessing="true" enabled="true">
      <match url="singledomain.*" />
      <conditions>
        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
      </conditions>
      <action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}/{R:1}" />
    </rule>
  </rules>
</rewrite>

我目前可以通过 http 和 https 访问该站点。但它永远不会从 http 重定向到 https。匹配条件是否正确,如果正确,还有什么问题?

4

2 回答 2

0

在此处找到解决方案: https : //stackoverflow.com/a/17066105/2535756 在此处发布有效的代码:

<rewrite>
      <rules>
        <rule name="HTTP to HTTPS" stopProcessing="true">
          <match url="(.*)" />
          <conditions>
            <add input="{HTTP_HOST}" pattern="(singledomain.com.*)" />
            <add input="{HTTPS}" pattern="off" ignoreCase="true" />
          </conditions>
          <action type="Redirect" redirectType="Permanent"  url="https://{HTTP_HOST}/{R:1}" />
        </rule>
      </rules>
    </rewrite>
于 2019-12-01T13:36:26.587 回答
0

使用 GoDaddy,根据我的经验,Plesk 应用程序中有一个设置实际上会强制从 HTTP 重定向到 HTTPS。您可以在目录安全设置下的 IIS 设置下找到它并选中需要 SSL/TSL 框。这会强制用户的浏览器使用 HTTPS 而不是 HTTP。

于 2019-12-01T19:10:53.877 回答