我需要nginx根据URL中路径的第一个段为每个请求动态选择根文件夹下的子文件夹,如果子文件夹不存在则返回404。这应该在不使用多个位置的情况下进行。
例如,这是服务器上的目录结构:
网址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;
}
有可能吗?