繁体   English   中英

Symfony 3:带子域的路由不适用于产品

[英]Symfony 3 : Routing with subdomain don't work on prod

我要花6个小时解决问题,我有一个具有主机要求的路由来处理子域。 它可以完美地在dev中工作,但是无论如何我都会在阶段中重复执行相同的错误:

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

感谢大家的帮助,我找到了答案。 负载平衡器运行状况检查器已配置为检查“ /登录”路径,但我不知道此配置,因此无法解释错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM