Php Symfony2保护所有子域

Php Symfony2保护所有子域,php,security,symfony,routing,firewall,Php,Security,Symfony,Routing,Firewall,我正在Symfony中创建带有动态子域的应用程序 我想保护每个子域,除了www(www不那么重要) 例如:foo.mydomain.com重定向到foo.mydomain.com/login 但是mydomain.com不应该被重定向 在VHost中,我有一行: ServerAlias : *.mydomain.com 我使用FOSUserBundle通过自定义用户管理器管理用户 防火墙如下所示: firewalls: fos: pattern: ^/

我正在Symfony中创建带有动态子域的应用程序

我想保护每个子域,除了www(www不那么重要)

例如:foo.mydomain.com重定向到foo.mydomain.com/login

但是mydomain.com不应该被重定向

VHost
中,我有一行:

ServerAlias : *.mydomain.com
我使用FOSUserBundle通过自定义用户管理器管理用户

防火墙如下所示:

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 }
我不确定我是否应该有两个防火墙

访问控制如下所示:

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的东西,其中包含角色用户

解决方案

.mydomain.com
而不是
^\.mydomain.com

access_control:
    - { path: ^/login,  roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { host: .mydomain.com, path: ^/, roles: ROLE_USER }