站点根目录的Symfony访问控制

nmc*_*ree 3 php firewall access-control symfony

我创建了一个具有防火墙访问控制的站点,强制用户登录以访问任何内容,即

 - { path: ^/, roles: IS_AUTHENTICATED_FULLY}
Run Code Online (Sandbox Code Playgroud)

现在客户想要在网站的根目录上有一个启动页面,即www.sitename.com.

我有这个页面映射到DefaultController::indexAction,但我无法弄清楚如何允许IS_AUTHENTICATED_ANONYMOUSLY访问此页面,因为没有路径名称即www.sitename.com/splash-page关闭访问控制.

我甚至可以这样做吗?

A.L*_*A.L 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 }
Run Code Online (Sandbox Code Playgroud)

正则表达式^/(.+)将匹配每个URL,而不是包含后面的内容/.

正则表达式^/$将匹配URL而不包含任何内容/(/是字符串的结尾).

并且必须在routing.yml文件中声明主页URL :

homepage:
    pattern: /
    defaults: { _controller: ACMEBundle:Default:homepage }
Run Code Online (Sandbox Code Playgroud)