Как настроить nginx для загрузки файлов try из другой папки?

мне нужна помощь в настройке Nginx для загрузки файлов из другой папки. Вот моя конфигурация:

index index.php;

server {
    server_name domain.com;
    root /www/domain.com/www/;

    location / {
            try_files $uri $uri/ /php_www/index.php;
    }

    location ~ .php$ {
            try_files $uri =404;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index /php_www/index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_script_name;
            include /etc/nginx/fastcgi_params;
    }

    error_page  404  /404.html;

    error_log /var/log/nginx/error.log;

}

проблема в том, что /php_www/ не находится внутри корня, определенного в nginx.

у меня есть 4 разных папки, с которыми мне нужно это сделать, вот как выглядит моя структура папок:

/www/domain.com/www/
/www/domain.com/php_www/
/www/domain.com/content1/
/www/domain.com/content2/

то, что я пытаюсь сделать, это когда посетитель идет в domain.com/page1/content1/ Я хочу загрузить содержимое из папки content1, например. Причина этого У меня есть несколько проектов git с отдельными РЕПО...это позволит мне подтолкнуть определенные области веб-сайта к производству, не влияя ни на что другое. Я бы хотел, чтобы не все мои файлы/контент были доступны в папке /www, поэтому URL-адреса не могут быть атакованы грубой силой, ища контент.

надеюсь, это имеет смысл!

рабочий раствор (из этой комментарий)

location ^~ / { 
    root /www/domain.com/php_www/; 
    try_files $uri $uri/ /index.php; 
    location ~* .(?:php|html)$ { 
        try_files $uri =404; 
        fastcgi_pass 127.0.0.1:9000; 
        include /etc/nginx/fastcgi_params; 
    }
}

1 ответов


можно использовать root