在我的 Symfony2 应用程序中,我设置了防火墙,以便 /admin
下的所有内容路由需要通过 https 运行,但是在部署时我得到一个重定向循环。我已经阅读了 Symfony2 网站上关于防火墙的文档,并设置了一个登录表单。我还阅读了一些 Stack Overflow 文章并尝试了他们的解决方案,但到目前为止还没有。
下面是我的配置,有什么我遗漏的吗?
(据我所知,服务器正在运行 Apache,我无法从托管服务提供商直接访问服务器配置)
access_control:
# require ROLE_ADMIN for /admin*
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
- { path: ^/login_check, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
- { path: ^/admin*, roles: ROLE_ADMIN, requires_channel: https}
最佳答案
更新:修复了问题。事实证明,托管服务提供商没有设置一些服务器变量。
为了将来引用,请在 app.php
下添加以下内容在 web 或 public_html 目录中。可能是一个肮脏的黑客,但它为我解决了这个问题。
if($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
{
$_SERVER['HTTPS'] = 'on';
$_SERVER['SERVER_PORT'] = 443;
}
关于php - 强制 https 时在 symfony2 中重定向循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34118854/