【问题标题】:HTTP to HTTPS not working for my asp.net websiteHTTP 到 HTTPS 不适用于我的 asp.net 网站
【发布时间】:2020-03-26 06:28:41
【问题描述】:

我尝试了几乎所有与 http 到 https 重定向的 web.config 更改相关的赞成建议。 Best way in asp.net to force https for an entire site?

但它不适用于我的 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。匹配条件是否正确,如果正确,还有什么问题?

【问题讨论】:

  • 如果我使用 那么它可以工作,但我的共享主机中的其他域也开始通过 https 提供服务,并且这些域没有 ssl,所以这些域可以没有加载。

标签: asp.net web-config


【解决方案1】:

在这里找到解决方案: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>

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我是旧帐户,他们还没有将我迁移到 Plesk。拿到 SSL 后我才知道这一切。他们要求我让这个托管帐户过期并在续订期间迁移到新的 Plesk,否则我将不得不为我帐户中的多个域购买一些批量 SSL :(
    • 您的代码需要使用 URL Rewrite,请查看stackoverflow.com/questions/9823010/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多