Я использую другой корень для пути /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;
}
}
Используя PHP с двумя корнями, вам понадобится location
блок для каждого. Самое чистое решение - это вложенный блок местоположения в location ^~ /cloud
блок. Обратите внимание на использование ^~
модификатор, который делает этот префикс location
иметь приоритет над другими location ~ \.php$
блок. Видеть этот документ для большего.
location ^~ /cloud {
root /home/fhost/public_html;
location ~ \.php$ {
...
}
}