我有一个使用带有安全防火墙的 Silex 的应用程序。当我在https://app.com/web加载我的应用程序并且我尚未通过身份验证时,我被重定向到https://app.com:80/web/user/login_check
当我尝试在非 ssl 端口上建立 ssl 连接时,这会产生 SSL 错误。
我的防火墙配置如下所示,
$app['security.firewalls'] = array(
'login' => array(
'pattern' => '^/user/login$',
),
'admin' => array(
'pattern' => '^.*$',
'form' => array('login_path' => '/user/login', 'check_path' => '/user/login_check'),
'logout' => array('logout_path' => '/user/logout'),
'users' => array(
// raw password is demo
'test' => array('ROLE_ADMIN', 'qldD7MO0Ol7e2LijC1qdNxQJpkIdHQLPjHUM0rN/N6AjEHqGzZFsYPh94R/AeFrM8aEt9Y6L$
),
),
);
我知道我可以在不添加端口的情况下访问https://app.com/web/index.php,因此它不是我的 Web 服务器,它是当我被重定向到 /user/login 页面时。
我读到 symfony 不使用 url 中的端口,而是在 _SERVER SERVER_PORT 中定义的端口,设置
$_SERVER['HTTPS'] = 'on';
$_SERVER['SERVER_PORT'] = 443;
对我没有帮助。
重定向的初始请求在其标头中返回 this,
请求网址:https ://app.com/web/ 请求方法:GET 状态码:302 找到
位置:https ://app.com:80/web/user/login
有人知道如何阻止 silex 将端口 80 重定向到该位置吗?
编辑:我应该提到这是在 Redhat 的 OpenShift 云基础架构上运行的。