我正在使用动态子域在Symfony中创建应用程序。
我想确保每个子域都期望www(www不太重要)。
例如:foo.mydomain.com重定向到foo.mydomain.com/login
但不应重定向mydomain.com。
在VHost
我有这一行:
ServerAlias : *.mydomain.com
我正在使用FOSUserBundle来管理具有自定义UserManager的用户。
防火墙如下所示:
firewalls:
fos:
pattern: ^/
host: ^\.mydomain.com
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
use_referer: true
logout: true
anonymous: ~
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
use_referer: true
logout: true
anonymous: true
我不确定我是否应该有两个防火墙
访问控制如下所示:
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { host: ^\.mydomain.com, path: ^/, roles: ROLE_USER }
所以我需要像* .mydomain.com这样的角色ROLE_USER
答案 0 :(得分:6)
解决方案:
.mydomain.com
代替^\.mydomain.com
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { host: .mydomain.com, path: ^/, roles: ROLE_USER }