2014-12-13 47 views
2

部署新站點後,我收到了一個非常奇怪的問題。在生產服務器上忽略Symfony2子域防火牆

該網站使用登錄後的shop.domain.tld。在security.yml我在我的防火牆和access_control list中定義了一個主機參數。

本地(Vagrant)它工作的很好,但在線防火牆似乎被忽略。

firewalls: 
    admin_secured_area: 
     pattern: ^/admin 
     anonymous: ~ 
     form_login: 
      login_path: admin_login 
      check_path: admin_authenticate 
      provider: entity_admin 
     logout: 
      path: admin_logout 
      target: /admin 

    shop_secured_area: 
     pattern: ^/ 
     host: .%domain% 
     anonymous: ~ 
     form_login: 
      login_path: homa_shop_login 
      check_path: shop_authenticate 
      provider: entity_user 
     logout: 
      path: shop_logout 
      target:/

    validate: 
     pattern: ^/validate 
     security: false 


access_control: 
    - { path: ^/admin/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/admin, roles: ROLE_ADMIN } 
    - { path: ^/_wdt, roles: 'IS_AUTHENTICATED_ANONYMOUSLY' } 
    - { host: .%domain%, path:^/nl/contact, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { host: .%domain%, path:^/cart/quantity, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { host: .%domain%, path:^/validate, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { host: .%domain%, path:^/register, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { host: .%domain%, path:^/register/newcontact, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { host: .%domain%, path:^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { host: .%domain%, path:^/forgot/password, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { host: .%domain%, path:^/, roles: ROLE_USER } 

%domain%parameters.yml設置爲使用domain.tld

的子域的路由正在像預期,只有防火牆被忽略。

有什麼想法?

+0

如何定義'%domain%'? (這只是爲了檢查聲明沒有錯誤) – 2014-12-15 12:40:30

回答

0

該網站使用shop.domain.tld

%domain%parameters.yml設置如使用domain.tld

你不應該定義爲%domain%"shop.domain.tld"

或者您應該嘗試在%domain%之前刪除.(點),因爲根據this answerofficial documentation,點不是必需的。

+0

Thx爲您的答案。但是不要改變任何我害怕的東西。 – 2014-12-15 09:13:46