将 HTTPS 重定向到控制器中的 HTTP


Redirect HTTPS to HTTP in Controller

目前重定向代码将HTTPS重定向→HTTPS。我尝试用die($url)停止页面,以查看协议是否是HTTP并且是正确的。但是由于某种原因,当我尝试PHP标头位置时,它会重定向回HTTPS协议而不是HTTP

因此,当我在 Zend 预调度方法中使用以下代码时

header('Location: http://www.example.com/blogs/');

它重定向到https://www.example.com/blogs/(HTTPS协议)

而当我尝试时

header("Refresh:0; url=http://www.example.com/blogs/");

它工作正常。这意味着它会重定向到 HTTP 协议。

注意:我需要在控制器内执行此操作的原因是重定向取决于特殊的旗杆。我不能用Apache配置做到这一点。

我终于解决了这个问题。

问题是重定向标头被负载均衡器覆盖。因此,有某种策略集,如果有人试图将URL从一个协议重定向到另一个协议,它将不允许导致我正在经历的重定向循环。

在我的特定情况下,解决方案是需要发送的另一个自定义标头,它允许负载均衡器中的方案覆盖。