1、NET MVC开发的站点,此站点用MVC特性http强制跳转到HTTPS 2、部署在SLB后端的ECS上 3、通过域名转发策略转发到后端ECS上 4、浏览器访问站点提示 重定向次数过多 无法正常使用 5、去掉MVC https强制特性访问正常,只是http无法跳转到https
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
遇到“重定向次数过多”的问题,通常是因为请求在到达最终目标之前经历了多次重定向,而浏览器限制了重定向的次数以防止无限循环。根据您描述的情况,这可能是由于以下几个原因造成的:
SLB与ECS上的HTTP到HTTPS重定向冲突:如果您的SLB配置了监听规则,尝试将HTTP流量自动转发到HTTPS(即SLB层面做了HTTP到HTTPS的重定向),同时您的.NET MVC应用也配置了强制从HTTP跳转到HTTPS,这样就会导致两次重定向。
域名解析设置中的重定向:除了SLB和应用本身,还需要检查域名提供商或DNS解析服务是否也设置了HTTP到HTTPS的重定向规则。
应用内部逻辑错误:虽然您提到去掉MVC的HTTPS强制特性后访问正常,但还是需要确认应用代码中是否有其他逻辑错误导致意外的重定向。
调整重定向策略:选择一个层级进行重定向操作,推荐在SLB层面上处理HTTP到HTTPS的转换。这样做的好处是所有进入SLB的HTTP请求在到达ECS前就已经被转换为HTTPS,避免了应用层的额外重定向。您可以在阿里云SLB的监听规则中设置HTTP监听端口,并勾选“HTTPS重定向”功能。
修改应用配置:如果决定不在SLB层处理,那么需要在.NET MVC应用中调整重定向逻辑,确保只有当直接通过HTTP访问应用时才执行重定向到HTTPS的操作。可以考虑检查web.config
或全局过滤器等设置,确保不会对已经加密的请求再次发起重定向。
检查DNS设置:确认域名解析服务中没有设置额外的重定向规则,确保所有重定向逻辑统一且不冲突。
测试与验证:在做出任何更改后,务必进行充分的测试,包括直接访问ECS的IP地址和通过域名访问,以确保重定向逻辑正确无误且没有引发新的问题。
通过上述步骤,应该能够解决“重定向次数过多”的问题,确保用户可以通过安全的HTTPS协议访问您的站点。