如何强制HTTPS或HTTP为不同的url
编辑本页警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 5.3,现已不再维护。
读本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。
如何强制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}
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
<!--配置/packages/security.xml --><??> . xml version="1.0" encoding="UTF-8"<srv:容器xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/security”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xmlns:深水救生艇=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services //www.oldmanjams.com/schema/dic/services/services-1.0.xsd //www.oldmanjams.com/schema/dic/security //www.oldmanjams.com/schema/dic/security/security-1.0.xsd”><配置><!--...--><规则路径=“^ /安全”角色=“ROLE_ADMIN”requires-channel=“https”/><规则路径=“^ /登录”角色=“IS_AUTHENTICATED_ANONYMOUSLY”requires-channel=“https”/><规则路径=“^ /”角色=“IS_AUTHENTICATED_ANONYMOUSLY”requires-channel=“https”/>配置>srv:容器>
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
/ /配置/包/ security.php使用欧宝娱乐app下载地址\配置\SecurityConfig;返回静态函数(SecurityConfig$安全){/ /……$安全->accessControl ()->路径(' ^ /安全')->角色([“ROLE_ADMIN”])->requiresChannel (“https”);$安全->accessControl ()->路径(“^ /登录”)->角色([“IS_AUTHENTICATED_ANONYMOUSLY”])->requiresChannel (“https”);$安全->accessControl ()->路径(' ^ /)->角色([“IS_AUTHENTICATED_ANONYMOUSLY”])->requiresChannel (“https”);};
为了使开发过程更简单,您还可以使用环境变量,例如requires_channel: ' % env (SECURE_SCHEME) % '
.在你的.env
文件,设置SECURE_SCHEME
来http
默认情况下,但重写为https
在生产。
看到安全访问控制如何工作?如欲了解更多有关access_control
一般来说。
请注意
强制HTTP或HTTPS的另一种方法是使用方案选项一条或一组路由的。
请注意
在使用反向代理或负载均衡器时强制使用HTTPS需要适当的配置,以避免无限重定向循环;看到如何配置Symfony在负载均衡器欧宝娱乐app下载地址或反向代理后工作欲知详情。
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。