NGiNX:来自其他位置的PHP文件+;回退到bootstrap index.php

NGiNX:来自其他位置的PHP文件+;回退到bootstrap index.php,php,nginx,bootstrapping,Php,Nginx,Bootstrapping,我有两个目录具有相同的结构目录A包含所有文件,目录B仅包含与A不同的文件(即另一个logo.png)。此外,我正在运行一个ZendFramework,它有一个管理和管理模块,应该在其中触发引导(index.php) 因此www.my.com、www.my.com/admin/和www.my.com/management应触发引导文件,所有其他位置应首先在dirA中查找,然后在B中查找,php文件应从这两个文件夹中运行 为了解决这个问题,我花了好几个小时寻找和尝试,但我认为一定有更好或更简单的方法

我有两个目录具有相同的结构目录
A
包含所有文件,目录
B
仅包含与
A
不同的文件(即另一个logo.png)。此外,我正在运行一个ZendFramework,它有一个管理和管理模块,应该在其中触发引导(index.php)

因此
www.my.com
www.my.com/admin/
www.my.com/management
应触发引导文件,所有其他位置应首先在dir
A
中查找,然后在
B
中查找,php文件应从这两个文件夹中运行

为了解决这个问题,我花了好几个小时寻找和尝试,但我认为一定有更好或更简单的方法

有吗


奇怪的是,ZF中的index.php是下载而不是执行的,或者下载的其他php文件不是执行的。这个技巧在
location~*\.php$

中完成了这一部分。下面是我的配置文件

server {
    ...

    root /var/www/clients/B/public/;

    # ZendFramework run bootstrap index.php
    location ~ ^/(management|admin)(?:/|\z) {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~* \.php$ {
        include php.conf;
        try_files $uri $uri/ @fallbackPHP;
    }

    location / {
        try_files $uri $uri/ @fallback;
    }

    location @fallback {
        root /var/www/clients/A/public/;
    }

    location @fallbackPHP {
        root /var/www/clients/A/public/;
        include php.conf;
    }
}
其中包括php.conf

try_files $uri =404;
fastcgi_index index.php;
fastcgi_pass php5-fpm-sock-B;
include /etc/nginx/fastcgi_params;