我有配置 Nginx中的Symfony https +清漆+ Apache http =重定向循环
我设置了路由以获得链接的方案https:['https'] 但是为什么要获得重定向循环? 它看起来symfony不仅会使用https创建链接,而且还会在获得http的情况下返回重定向-我需要使用http页面来缓存清漆,但需要链接https。
更新1 当我在路由中不使用任何模式并通过https运行页面时,几乎所有内容都能正常工作-无需
1 fos路由创建绝对http链接
2 liip想象同样的情况
答案 0 :(得分:1)
如果尽管在访问页面时仍使用https,但仍重定向到https,则原始协议不会转发到处理响应的后端。
有一个头文件X-Forwarded-Proto
,应将其设置为包含原始协议,然后再将其通过任何代理。 Symfony应该尊重该标头,并接受该请求是安全的并且不能重定向(并且还应将所有链接设置为https:// url)
您需要配置Apache(我以为这是终止https连接并具有证书)来设置此标头以匹配原始请求协议。
在Symfony遵循标题Symfony Docs for proxies
之前,您可能需要信任代理。// public/index.php
// ...
$request = Request::createFromGlobals();
// tell Symfony about your reverse proxy
Request::setTrustedProxies(
// the IP address (or range) of your proxy
['192.0.0.1', '10.0.0.0/8'],
// trust *all* "X-Forwarded-*" headers
Request::HEADER_X_FORWARDED_ALL
);