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

Redirect HTTPS to HTTP in Controller

目前重定向代码重定向 HTTPS → HTTPS。我尝试用 die($url) 停止页面以查看 PROTOCOL 是否为 HTTP 并且它是正确的。但出于某种原因,当我尝试 PHP header 位置时,它重定向回 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 配置。

我终于解决了这个问题。

问题是重定向 header 被负载均衡器覆盖了。所以有某种策略集,如果有人试图将 URL 从一种协议重定向到另一种协议,它将不允许导致我遇到的重定向循环。

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