我需要一些帮助来配置 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;
}
}