加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

IIS重写Web.config中的规则以将HTTPS请求重定向到HTTP

发布时间:2020-12-14 21:13:19 所属栏目:资源 来源:网络整理
导读:我需要将所有https请求重定向到http,例如,如果有人访问 https://www.example.com/another-page/到 http://www.example.com/another-page/ 我现在在web.config中有以下重写规则,但它无法正常工作.它正在重定向https://www.example.com/another-page/到https:/
我需要将所有https请求重定向到http,例如,如果有人访问 https://www.example.com/another-page/到 http://www.example.com/another-page/

我现在在web.config中有以下重写规则,但它无法正常工作.它正在重定向https://www.example.com/another-page/到https://www.example.com/,所以到了网站的根目录,但我希望重定向保留在同一个URL中,只重写https到http.

<rule name="Redirect to HTTP" stopProcessing="true">
   <match url="(.*)" />
     <conditions>
       <add input="{R:1}" pattern="^onepage/(.*)$" negate="true" />
       <add input="{HTTPS}" pattern="^ON$" />
     </conditions>
     <action type="Redirect" url="http://{HTTP_HOST}/{R:0}" redirectType="Permanent" />
 </rule>

有关更改上述规则的任何帮助,以便它只将https更改为http,但保持访问的完整网址将非常感谢!

解决方法

我设定了你的规则,清理了一点,它起作用了;所以这并没有真正回答新的问题.

建议:删除仅用于测试的单页输入条件,如cheesmacfly在问题评论中建议的那样.

另外,尝试将操作更改为{R:1}而不是{R:0}.在这种情况下应该没关系,但我只是喜欢使用1和更高版本来匹配特定的捕获组. R:0表示整个匹配的字符串,这总是让我感到困惑.

<rule name="Redirect to HTTP" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
        <add input="{HTTPS}" pattern="^ON$" />
    </conditions>
    <action type="Redirect" url="http://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>

一种可能性是您的浏览器缓存了之前的规则尝试.当redirectType为Permanent,并且您仍在开发或测试时,浏览器通常会缓存先前的规则.清除浏览器缓存,和/或删除永久,和/或以隐身模式浏览.完成测试后,将其更改为永久性.请参阅此答案中的数字2和3:https://stackoverflow.com/a/9204355/292060

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读