如何迫使路线总是使用HTTPS或HTTP吗

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 4.1,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

如何迫使路线总是使用HTTPS或HTTP吗

有时,您想要获得一些路线和确保他们总是通过HTTPS协议访问。路由组件允许您执行URI方案通过计划:

  • 注释
  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
/ / src /控制器/ MainController.php名称空间应用程序\控制器;使用欧宝娱乐app下载地址\\FrameworkBundle\控制器\AbstractController;使用欧宝娱乐app下载地址\组件\路由\注释\路线;MainController扩展AbstractController{/ * * *@Route(name = " /安全”“安全”,计划= {“https”}) * /公共函数安全(){/ /……}}

上述配置力量安全总是使用HTTPS。

当生成安全URL,如果当前的计划是HTTP, Symfony会自动生成一个绝对与HTTPS欧宝娱乐app下载地址 URL方案,即使使用路径()功能:

1 2 3 4 5 6 7
{#如果当前方案HTTPS #}{{路径(“安全”)}}{#生成一个相对URL: /安全#}{#如果当前的计划是HTTP #}{{路径(“安全”)}}{#生成一个绝对URL: https://example.com/secure}

还强制要求传入的请求。如果你试图访问/安全与HTTP路径,你将自动重定向到相同的URL,但随着HTTPS方案。

上面的例子中使用https的计划,但你也可以强迫一个URL总是使用http

请注意

安全组件提供执行HTTP或HTTPS通过另一种方式requires_channel设置。这个替代方法更适合安全网站的“区域”(所有url/管理),或者当你想安全的第三方包中定义的url(请参阅如何为不同的力HTTPS或HTTP url更多的细节)。

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。