У меня есть две директории, имеющие одинаковую структуру каталогов A
есть все файлы, каталог B
только файлы, которые отличаются от A
(т. е. другой логотип.png). Кроме того, я запускаю ZendFramework, в котором есть модуль управления и администрирования, где должен запускаться загрузчик (index.php).
Так www.my.com
, www.my.com/admin/
а также www.my.com/management
должен вызвать файл начальной загрузки, и все остальные местоположения должны сначала быть найдены в директории A
а затем в B
и php файлы должны запускаться из обеих папок.
Я искал и пытался часами решать эту проблему, но я думаю, что должен быть лучший или более легкий путь.
Есть?
Странно было то, что index.php из ZF был загружен вместо выполненного, или другие файлы 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;
Других решений пока нет …