我创建了一个带有防火墙访问控制的网站,强制用户登录才能访问任何内容,即
- { path: ^/, roles: IS_AUTHENTICATED_FULLY}
现在客户希望在网站的根目录下有一个启动页面,即 www.sitename.com。
我将此页面映射到 DefaultController::indexAction
,但是我不知道如何允许 IS_AUTHENTICATED_ANONYMOUSLY
访问此页面,因为没有路径名,即 www.sitename.com/splash-page
挂掉访问控制。
我什至可以这样做吗?
最佳答案
您可以保护除主页 URL 之外的所有 URL:
# 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 }
正则表达式 ^/(.+)
将匹配每个 URL,而不是包含 /
之后的内容。
正则表达式 ^/$
将匹配 /
之后不包含任何内容的 URL(/
是字符串的结尾)。
主页 URL 必须在 routing.yml
文件中声明:
homepage:
pattern: /
defaults: { _controller: ACMEBundle:Default:homepage }
关于php - 站点根目录的 Symfony 访问控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21020550/