3

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

使用他们的搭载 SSL,我可以很好地访问应用程序,https://但所有重定向都转到http://.

如果我手动更改 url,我可以通过访问所有内容,https://但这只会持续到下一次发出重定向,然后我重新打开http://.

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

如何防止被意外重定向https://http://

4

1 回答 1

4

定义 FULL_BASE_URL

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

因为它实际上是在服务器接收的 http 连接上,所以路由器生成的任何绝对 url,例如发出重定向时,将http://默认使用,而不是https://,因为这是访问应用程序服务器的协议。

要覆盖这一点,请将 url 定义为应用程序的绝对根目录,以便将其用于所有绝对 url

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

define('FULL_BASE_URL', 'https://example.com');
于 2014-05-22T15:25:30.353 回答