2017-05-24 23 views
2

これは私が問題に抱いている問題です。サブドメインを処理するためにホスト要件のルーティングがあります。これは、dev内完璧に動作しますが、これをステージングに関係なく、私は何をすべきか私に同じエラーを繰り返していない:ここでsymfony 3:サブドメインを使ったルーティングはプロダクトでは機能しません

No route found for "GET /login"" at /var/www/app/var/cache/prod/classes.php 

は私のルーティングです:

app_front_office: 
    resource: "@AppFrontOfficeBundle/Resources/config/routing.yml" 
    prefix: /
    host: "%front_office_domain%" 

app_back_office: 
    resource: "@AppBackOfficeBundle/Resources/config/routing.yml" 
    prefix: /
    host: "%back_office_domain%" 

のsecurity.yml:

firewalls: 
    dev: 
     pattern: ^/(_(profiler|wdt)|css|images|js)/ 
     security: false 

    main: 
     pattern: ^/ 
     anonymous: true 
     form_login: 
      login_path: app_back_office_security_login 
      check_path: app_back_office_security_login 
     logout: 
      path: app_back_office_security_logout 
      target: app_back_office_dashboard_index 
     remember_me: 
      secret: '%secret%' 
      lifetime: 2630000 
      path: app_back_office_dashboard_index 
      always_remember_me: true 
      domain: '%cookie_domain%' 
      user_provider: main_provider 

access_control: 
    - { host: '%back_office_domain%',path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { host: '%back_office_domain%',path: ^/, role: ROLE_ADMIN } 

parameters.yml:

cookie_domain: .domain.com 
front_office_domain: staging.domain.com 
back_office_domain: bo-staging.domain.com 

デバッグ:ルータ:

app_front_office_homepage      ANY  ANY staging.domain.com /         
fos_js_routing_js        ANY  ANY  ANY      /js/routing.{_format}    
app_back_office_dashboard_index    GET  ANY  bo-staging.domain.com /         
app_back_office_security_login    GET|POST ANY  bo-staging.domain.com /login        
app_back_office_security_logout    ANY  ANY  bo-staging.domain.com /logout        
app_back_office_subscription_plan_list_ajax GET  ANY  bo-staging.domain.com /subscriptions/list     
app_back_office_user_index     GET  ANY  bo-staging.domain.com /users        
app_back_office_user_profile     GET  ANY  bo-staging.domain.com /users/profile/{userId}    
app_back_office_user_update_field_ajax  POST  ANY  bo-staging.domain.com /users/updateField     
app_back_office_user_delete_ajax    DELETE  ANY  bo-staging.domain.com /users/delete/{userId}    
app_back_office_user_recover_ajax    POST  ANY  bo-staging.domain.com /users/recover/{userId}    
app_back_office_user_list_ajax    GET  ANY  bo-staging.domain.com /users/list 

nginxのconfに:私は問題を解決できない場合は、あなたの助けを

server { 
     listen  443 default_server ssl; 

     server_name staging.domain.com api-staging.domain.com dashboard-staging.domain.com bo-staging.domain.com; 
     root /var/www/wapp/web; 


     ssl on; 
      ssl_certificate  /etc/nginx/ssl/ssl-bundle.crt; 
      ssl_certificate_key /etc/nginx/ssl/domain_com.key; 
     # ssl_session_timeout 5m; 
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 


     location/{ 
      try_files $uri /app.php$is_args$args; 
     } 
     # PROD 
     location ~ ^/app\.php(/|$) { 
      fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
      fastcgi_split_path_info ^(.+\.php)(/.*)$; 
      include fastcgi_params; 
      fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; 
      fastcgi_param DOCUMENT_ROOT $realpath_root; 
      internal; 
     } 

     location ~ \.php$ { 
      return 404; 
     } 

     error_log /var/log/nginx/app_error.log; 
     access_log /var/log/nginx/app_access.log; 
    } 


    # HTTP server 
    server { 
     listen  80; 
     server_name staging.domain.com api-staging.domain.com dashboard-staging.domain.com bo-staging.domain.com; 
     root /var/www/app/web; 

     location/{ 
      return 301 https://$server_name$request_uri; 
     } 
    } 

おかげで、私は夢中になる:P

+0

プロードキャッシュをクリアしましたか?あなたのホストにDNSワイルドカードとApache設定があると仮定しました。 –

+0

あなたはどのURLにアクセスしようとしていますか? –

+0

@MehmetSoyluはいキャッシュを消去しました。サブドメインレコードとnginxサーバーがあります。 – Shked0wn

答えて

0

はあなたの助けのために皆に感謝し、私はanwserを見つけた。ロードバランサのヘルスチェッカーは、 "/ login"パスをチェックするように設定されていました。この設定を認識していないため、エラーを説明しています。

関連する問題