我正在运行我在cloudControl上使用CakePHP(1.3)开发的Web应用程序。
使用他们的搭载SSL,我可以通过https://
访问该应用,但所有重定向都转到http://
。
如果我手动更改网址,我可以通过https://
访问所有内容,但这只会在下次发布重定向时才会显示,然后我又回到http://
。
这不会发生在我的本地环境中,所以我想知道它是否与云控制或搭载SSL有关。
如何防止意外地从https://
重定向到http://
?
答案 0 :(得分:4)
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');