开发者社区 问答 正文

NET MVC特性强制HTTPS导致和SLB域名转发策略无法使用

1、NET MVC开发的站点,此站点用MVC特性http强制跳转到HTTPS 2、部署在SLB后端的ECS上 3、通过域名转发策略转发到后端ECS上 4、浏览器访问站点提示 重定向次数过多 无法正常使用 5、去掉MVC https强制特性访问正常,只是http无法跳转到https

展开
收起
制冷人 2020-02-02 11:11:32 888 分享 版权
阿里云 AI 助理回答

遇到“重定向次数过多”的问题,通常是因为请求在到达最终目标之前经历了多次重定向,而浏览器限制了重定向的次数以防止无限循环。根据您描述的情况,这可能是由于以下几个原因造成的:

  1. SLB与ECS上的HTTP到HTTPS重定向冲突:如果您的SLB配置了监听规则,尝试将HTTP流量自动转发到HTTPS(即SLB层面做了HTTP到HTTPS的重定向),同时您的.NET MVC应用也配置了强制从HTTP跳转到HTTPS,这样就会导致两次重定向。

  2. 域名解析设置中的重定向:除了SLB和应用本身,还需要检查域名提供商或DNS解析服务是否也设置了HTTP到HTTPS的重定向规则。

  3. 应用内部逻辑错误:虽然您提到去掉MVC的HTTPS强制特性后访问正常,但还是需要确认应用代码中是否有其他逻辑错误导致意外的重定向。

解决方案:

  1. 调整重定向策略:选择一个层级进行重定向操作,推荐在SLB层面上处理HTTP到HTTPS的转换。这样做的好处是所有进入SLB的HTTP请求在到达ECS前就已经被转换为HTTPS,避免了应用层的额外重定向。您可以在阿里云SLB的监听规则中设置HTTP监听端口,并勾选“HTTPS重定向”功能。

  2. 修改应用配置:如果决定不在SLB层处理,那么需要在.NET MVC应用中调整重定向逻辑,确保只有当直接通过HTTP访问应用时才执行重定向到HTTPS的操作。可以考虑检查web.config或全局过滤器等设置,确保不会对已经加密的请求再次发起重定向。

  3. 检查DNS设置:确认域名解析服务中没有设置额外的重定向规则,确保所有重定向逻辑统一且不冲突。

  4. 测试与验证:在做出任何更改后,务必进行充分的测试,包括直接访问ECS的IP地址和通过域名访问,以确保重定向逻辑正确无误且没有引发新的问题。

通过上述步骤,应该能够解决“重定向次数过多”的问题,确保用户可以通过安全的HTTPS协议访问您的站点。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答