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