如果我按照官方文档强制执行HTTPS,则使用.NET Core 2.0,网站无法加载错误ERR_TOO_MANY_REDIRECTS。
重现的步骤:
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:5001/
ProxyPassReverse / http://127.0.0.1:5001/
如果删除了第2步中的代码,那么网站可以通过HTTP或HTTPS正常工作(但显然不会重定向)但是如果添加了此代码,则无法通过HTTP或HTTPS加载ERR_TOO_MANY_REDIRECTS。 似乎.NET Core 2.1的方法已经改变,但尚未发布。
答案 0 :(得分:5)
您已将直通设为http
,而不是https
。 Apache在这里作为反向代理运行,因此它只是将请求转发到您的直通服务器上,它将始终根据您的配置在http
上进行。然后,由于ASP.NET Core应用程序配置为需要HTTPS,它会重定向,导致新的请求命中Apache,然后再通过http
转发 。
长短,你需要直通到https
,而不是http
。或者,您可以从ASP.NET Core应用程序中删除仅HTTPS要求,而是在Apache中强制执行HTTPS。
答案 1 :(得分:0)
检查你的逻辑,应该有一个导致循环重定向的地方。如果你使用反向代理,检查HttpContext是否正确获得Https状态