如何防止从https://到http://的意外重定向

时间:2014-05-22 15:08:18

标签: cakephp ssl cloudcontrol

我正在运行我在cloudControl上使用CakePHP(1.3)开发的Web应用程序。

使用他们的搭载SSL,我可以通过https://访问该应用,但所有重定向都转到http://

如果我手动更改网址,我可以通过https://访问所有内容,但这只会在下次发布重定向时才会显示,然后我又回到http://

这不会发生在我的本地环境中,所以我想知道它是否与云控制或搭载SSL有关。

如何防止意外地从https://重定向到http://

1 个答案:

答案 0 :(得分:4)

定义FULL_BASE_URL

cloudController的负载均衡器可能会侦听https请求并通过http将它们转发到您的应用服务器 - 可能会设置X-Forwaded-Proto标头。这是一种典型的设置,只有外部请求才能承担ssl加密的开销。

因为它实际上是在服务器接收的http连接上,所以路由器生成的任何绝对URL(例如when a redirect is issued)默认使用http://,而不是https://,这是访问应用程序服务器的协议。

要覆盖此内容,请定义要用作应用的绝对根的网址,以便it is used for all absolute urls

即。将以下内容放在应用程序引导程序中:

define('FULL_BASE_URL', 'https://example.com');