iis - HTTPS 重定向重写规则在 IIS 中不起作用
问题描述
我们的网站托管在 IIS 10 中,由有效的 SSL 证书覆盖。它在地址的 https 版本下工作正常。
为了捕获 http 流量并重定向它,我在 web.config 中添加了一个重写规则,如下所示:
<rule name="Redirect to http" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
<match url="(.*)" negate="false" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
我以前用过这个,希望它能正常工作。但是在此服务器上,它似乎不起作用。尝试通过 http 访问该站点会产生 ERR_EMPTY_RESPONSE 错误。
我搜索了一堆教程,其中大部分似乎都支持我得到的重写。但是,我确实找到并尝试了这个略有不同的版本
<rule name="Redirect to http" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="{SERVER_PORT_SECURE}" pattern="^0$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
</rule>
但这也不适用于与 http 相同的 ERR_EMPTY_RESPONSE。
该站点通过 443 上的主机名绑定到 https,并在端口 80 上绑定了一个空主机名。
其他重写规则(例如基于 IP 的访问白名单)似乎工作正常,因此重写模块不太可能出现问题。
不知道我做错了什么?
解决方案
推荐阅读
- javascript - 在Angular中单击后退/前进时如何防止再次打开相同的链接?
- c# - “程序有太多参数”错误,虽然我只有两个
- constraint-programming - 限制在 MiniZinc 中选择某些项目
- python - 用于图像数据的 keras 顺序模型
- ruby-on-rails - 弹性搜索 - 产品选项的聚合过滤器
- apache - .htaccess 用分页重写类别
- ignite - 点燃从缓存或磁盘中获取的查询结果
- java - 如何修复 cassandra 服务器中未配置的表系统日志?
- c++ - 为什么通过委托返回 const 引用会在 C++ 中出现分段错误,而没有委托只是“很好”
- node.js - NODEJS:使用 supertest 和 mocha 的测试自动通过 GitLab CI/CD