我在我的 Google Cloud Platform HTTP 负载均衡器上设置了端点终止设置,并将 HTTPS 设置为与我的后端通信的协议。
这意味着所有请求,HTTP 或 HTTPS,都是 HTTPS 到 apache。这样做的问题是HTTPS
环境变量设置为on
即使X-Forwarded-Proto
设置为http
.
我所有的研究和测试都只指向相反的情况(通过规则设置HTTPS
何时)。on
X-Forwarded-Proto
https
SetEnvIf X-Forwarded-Proto https HTTPS=on
但是,我需要一些东西来取消HTTPS
当X-Forwarded-Proto
is http
。
我已经尝试过设置SSLOptions -StdEnvVars
以及SetEnvIf
,SetEnv
和. 的许多组合UnsetEnv
。通过 mod_rewrite 设置它对我来说不是一个选项(我不知道它是否会起作用)。关于关闭的一个有趣的注意事项StdEnvVars
是,即使它关闭,所有与 SSL 相关的变量都消失了HTTPS
,除了我可以确认没有其他东西在我的任何配置文件中设置它。
编辑:
我在服务器配置、vhost 和 htaccess 中尝试过的一些指令示例:
SetEnvIf X-Forwarded-Proto http HTTPS=Off
SetEnvIf X-Forwarded-Proto http HTTPS=0
SetEnvIf X-Forwarded-Proto http !HTTPS
SetEnv HTTPS Off
SetEnv HTTPS 0
SetEnv HTTPS
UnsetEnv HTTPS
将这些指令与其他变量一起使用,包括类似的测试foo
就可以了。