我试图理解一种我从未见过的奇怪行为。
我有一个网站。已配置端口 80 上的 HTTP 主机名绑定。该网站可通过 HTTP 访问。
当我添加 HTTPS 绑定(尝试使用 SNI 和不使用 SNI)时,我可以通过 HTTPS 访问该网站。但是,当我尝试通过 HTTP 访问该网站时,我得到了 307 重定向到 HTTPS。
我没有添加 IIS 重定向规则或 URL 重写规则。此外,如果我将 HTTPS 端口更改为另一个端口(例如 44300),则来自 HTTP(端口 80)的重定向将更新为重定向到配置的非标准端口。
值得一提的是,这是一个 .NET Core 站点。应用程序是否有可能检查 IIS 绑定,然后在此处进行正确的重定向?
感谢您的所有聪明想法!
编辑:
Microsoft.AspNetCore.HttpsPolicy
我在 json 文件中找到了对以下内容的引用。我没有源代码。
此外,如果我清除 web 根目录并仅添加静态 index.htm 文件,则神奇的重定向不会发生。因此,ASP.NET Core 应用程序似乎从 IIS 配置中读取端口号,这听起来很奇怪。
答案1
.NET Core 包含默认的 HTTP 到 HTTPS 重定向,当检测到满足条件时可能会意外激活该重定向。因此,如果这不是您想要的,请找开发人员完全禁用该重定向(UseHttpsRedirection
从代码中删除)。