NGINX动态选择根目录下的子文件夹

时间:2017-09-13 19:05:56

标签: php symfony nginx

我需要nginx根据URL中路径的第一个段为每个请求动态选择根文件夹下的子文件夹,如果子文件夹不存在则返回404。这应该在不使用多个位置的情况下进行。

例如,这是服务器上的目录结构:

  • /服务/ A
  • /服务/ B

网址http://server/ a /app.php会调用/ services / a目录下的app.php。

网址http://server/ b /app.php会调用/ services / b目录下的app.php。

以下是我需要修改的Symfony的标准nginx配置:

server {
    server_name _;
    root /services;

    location / {
        try_files $uri /${NGINX_ENTRY_POINT}$is_args$args;
    }

    location ~ ^/(app_dev|config)\.php(/|$) {
        fastcgi_pass app:9000;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
    }

    location ~ ^/app\.php(/|$) {
        fastcgi_pass app:9000;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
    }

    location ~ \.php$ {
        return 404;
    }

    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
}

有可能吗?

0 个答案:

没有答案