如何强制HTTPS或HTTP为不同的url

编辑本页

如何强制HTTPS或HTTP为不同的url

提示

最好的政策就是强迫https在所有url上,这可以通过您的web服务器配置或access_control

您可以在安全配置中强制站点的某些区域使用HTTPS协议。这是通过access_control规则使用requires_channel选择。要在所有url上强制使用HTTPS,请添加requires_channel配置到每个访问控制:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8 9
#配置/包/ security.yaml安全:#……access_control:-路径:' ^ /安全'角色:ROLE_ADMIN,requires_channel:https-路径:“^ /登录”角色:IS_AUTHENTICATED_ANONYMOUSLY,requires_channel:https#捕获所有其他url-路径:' ^ /角色:IS_AUTHENTICATED_ANONYMOUSLY,requires_channel:https

为了使开发过程更简单,您还可以使用环境变量,例如requires_channel: ' % env (SECURE_SCHEME) % '.在你的.env文件,设置SECURE_SCHEMEhttp默认情况下,但重写为https在生产。

看到安全访问控制如何工作?如欲了解更多有关access_control一般来说。

请注意

强制HTTP或HTTPS的另一种方法是使用方案选项一条或一组路由的。

请注意

在使用反向代理或负载均衡器时强制使用HTTPS需要适当的配置,以避免无限重定向循环;看到如何配置Symfony在负载均衡器ob娱乐下载或反向代理后工作欲知详情。

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。
ob娱乐下载Symfony 5.4支持通过私人Packagist