security.yml 中的访问控制字段类似于
access_control:
- { path: ^/, roles: ROLE_ADMIN }
这意味着我想控制应用中每个页面的访问权限。所以,如果有人试图访问
http://localhost/example/web/app_dev.php/
将被重定向到登录页面。但我的注册页面也在那里。登录页面包含一个注册按钮。因此,当我将某人重定向到注册页面时,它会触发访问控制并重定向到同一个登录页面。这意味着
http://localhost/example/web/app_dev.php/signup
无法访问。
如何允许用户仅访问注册页面而不访问任何其他页面?
答案 0 :(得分:1)
尝试使用排除模式,例如(?!exclude)
access_control:
- { path: ^/(?!signup), roles: ROLE_ADMIN }
但是对于symfony2,注册页面必须在防火墙配置中排除:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
secured_area:
pattern: ^/(?!signup)
anonymous: false
form_login:
always_use_default_target_path: true
default_target_path: /
check_path: /auth_check
login_path: /signup/
logout:
path: /logout
target: /signup/
access_control:
- { path: ^/, roles: ROLE_ADMIN }