我使用不同的根路径/cloud
,但每当我尝试请求任何/cloud/*.php
文件时,nginx 都会说 404 文件未找到。我可以/cloud/*.html
毫无问题地访问。我甚至可以访问任何文件/*.php
,但不知何故无法访问/cloud
。我的配置文件如下所示
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html index.php;
server_name _;
location /cloud {
root /home/fhost/public_html;
}
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
答案1
使用具有两个根的 PHP,您将需要location
为每个根创建一个块。最干净的解决方案是将位置块嵌套在location ^~ /cloud
块中。请注意使用^~
修饰符使此前缀location
优先于其他location ~ \.php$
块。请参阅这个文件了解更多信息。
location ^~ /cloud {
root /home/fhost/public_html;
location ~ \.php$ {
...
}
}