我创建了一个带防火墙访问控制的站点,强制用户登录以访问任何内容,例如
- { path: ^/, roles: IS_AUTHENTICATED_FULLY}
现在,客户希望在网站的根目录上有一个启动页面,即www.sitename.com。
我已将此页面映射到DefaultController::indexAction
,但我无法弄清楚如何允许IS_AUTHENTICATED_ANONYMOUSLY
访问此页面,因为没有路径名称即www.sitename.com/splash-page
来挂起访问控制
我甚至可以这样做吗?
答案 0 :(得分:13)
您可以保护除主页网址之外的所有网址:
# app/config/security.yml file
security:
...
access_control:
# Logged in
- { path: ^/(.+), roles: IS_AUTHENTICATED_FULLY }
# no authentication for the homepage:
- { path: ^/$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
正则表达式^/(.+)
将匹配每个网址,而不是包含/
之后的内容。
正则表达式^/$
将匹配网址,而不是在/
之后不包含任何内容(/
是字符串的结尾)。
主页网址必须在routing.yml
文件中声明:
homepage:
pattern: /
defaults: { _controller: ACMEBundle:Default:homepage }