重定向到HTTPS错误 - ASP.NET MVC

时间:2017-01-28 19:05:37

标签: asp.net-mvc redirect ssl https

我们在尝试将用户从http重定向到https时遇到了问题 - 这两项工作和https都在使用ssl并且运行完美。

当我们尝试使用不同的方法重定向用户时,我们不断收到此错误:
ERR_TOO_MANY_REDIRECTS

我们尝试过的方法..

  • htaccess的
  • 在MVC中应用全局过滤器
  • 控制器中的属性(RequireHttpsAttribute)
  • Web.config(重写规则)

对于没有使用控制器的404页,结果相同。

2 个答案:

答案 0 :(得分:0)

提供您如何进行重定向。你在网络农场吗? SSL是否已卸载到负载均衡器?

在某些云/托管方案中,后者可能是罪魁祸首 -

e.g。

  • 应用程序中,您正在检查SSL连接,并且应用程序尝试重定向到https网址(即HttpRequest.IsSecureConnection

  • 但是,如果负载均衡器为您的服务器 s (服务器场)处理SSL,则从负载均衡器到主机 s 的连接可能不会通过https - 这是你的循环(你的应用程序中的ssl检查将永远是false

    browser: https< - > SSL/Load Balancer< - - > web farm: http

    在此方案中与您的提供商核实 - 他们通常将拥有自定义标题,您可以在将请求转发到服务器时进行检查 s 通过https表示原始请求

答案 1 :(得分:0)

感谢您的帮助,我的托管服务提供商用.htaccess解决了这个问题 - 我想我错了用它..再次感谢Stackoverflow!

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.(.*)$ [NC]
RewriteCond %{HTTP:HTTPS} !on
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [R,L]

RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteCond %{HTTP:HTTPS} !on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R,L]