Вы неправильно понимаете, как работает директива root
. Когда вы используете этот блок местоположения
location /wp-content/themes/webdev/projects/trackjob/point_card/ {
root /var/www/wp-content/themes/webdev/projects/trackjob/point_card;
try_files $uri $uri/ /card_api_js_v2.html;
}
и получаете входящий запрос /wp-content/themes/webdev/projects/trackjob/point_card/card_api_js_v2.html
, nginx объединяет $ document_ root (что составляет /var/www/wp-content/themes/webdev/projects/trackjob/point_card
) и * 1009. * $ uri (то есть /wp-content/themes/webdev/projects/trackjob/point_card/card_api_js_v2.html
) и ищет файл /var/www/wp-content/themes/webdev/projects/trackjob/point_card/wp-content/themes/webdev/projects/trackjob/point_card/card_api_js_v2.html
(который, очевидно, не будет найден). Это основное различие между директивами root
и alias
nginx. Вместо этого ваш блок местоположения должен быть
location /wp-content/themes/webdev/projects/trackjob/point_card/ {
root /var/www;
try_files $uri $uri/ /wp-content/themes/webdev/projects/trackjob/point_card/card_api_js_v2.html;
}
.
Обновление
Если вам нужно обслуживать сценарии PHP внутри этого местоположения, измените его на
location ^~ /wp-content/themes/webdev/projects/trackjob/point_card/ {
root /var/www;
try_files $uri $uri/ /wp-content/themes/webdev/projects/trackjob/point_card/card_api_js_v2.html;
location ~ \.php$ {
include fastcgi.conf;
fastcgi_param SCRIPT_FILENAME $request_filename;
# if your php-fpm listens to the UNIX socket (assuming default socket path)
# fastcgi_pass unix:/var/run/php/php7.4-fpm.sock
# if your php-fpm listens to the TCP/IP port (assuming default port)
# fastcgi_pass 127.0.0.1:9000;
}
}