asp.net IIS中的HTTP到HTTPS重定向

ntjbwcob  于 2023-04-22  发布在  .NET
关注(0)|答案(4)|浏览(200)

我必须将我的网站从http重定向到https,每当任何用户使用http打开我的网站时。
例如:-
http:\abc.mywebsite.com应转到https:\abc.mywebsite.com
请注意,在上面的URL中,它不是www.mywebsite.com,而是自定义URL abc.mywebsite.com。
我已经尝试了URL Rewrite工具,并按照所有步骤提到here。但是,我不能得到URL重写正常工作重定向。
以下是IIS中的URL重定向规则:-

下面是我的web.config在使用URL重写添加规则后的样子。

<configuration>
  .....
  .....
  .....
  <system.webServer>
    .....
    .....
    .....
    <rewrite>
      <rules>
        <rule name="Http to Https" enabled="true" stopProcessing="true">
          <match url="(.*)" />
           <conditions logicalGrouping="MatchAny">
            <add input="{HTTPS}" pattern="^OFF$" />
           </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
  .....
  .....
  .....
</configuration>

我还取消了“SSL设置”下的“需要SSL”复选框。
然而,在做了这一切之后,我的网站仍然没有重定向到https。只是给出错误“...无法到达此页面”。
请告诉我我是否错过了什么。

6l7fqoea

6l7fqoea1#

我对重写规则有一些怀疑,因为我看到了许多不同的示例。
尝试不同的值,如来自Microsoft Blog的值,可以产生更好的结果:

<rewrite>
    <rules>
        <rule name="Redirect to http" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
            <match url="*" negate="false" />
            <conditions logicalGrouping="MatchAny">
                <add input="{HTTPS}" pattern="off" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Found" />
        </rule>
    </rules>
</rewrite>

你也可以设置Tracing for Failed Requests in IIS 7。这可以给予你深入了解为什么它无法重定向。

2nc8po8w

2nc8po8w2#

我在同一个网站上遇到了同样的问题,当我试图从http重定向到https时。我确实创建了新的网站并添加了http://www.example.com/绑定,然后我创建了新的Http重定向并添加了我的https://www.example.com/它工作了。

xytpbqjk

xytpbqjk3#

确保您在IIS中正确设置了绑定,第二行以红色突出显示。
1.类型= HTTPS
1.主机名=站点地址,如“site.domain.com”
1.端口= 443

  1. IP地址=您尝试访问的服务器的IP地址。

mbskvtky

mbskvtky4#

下面是我的URL重写的样子:
请注意,它是在站点级别应用的

相关问题