O elemento final da instrução try_files
é um URI. O URI do script que você deseja é presumivelmente /v1/merchants/index.php
. Consulte este documento para obter detalhes.
Se o arquivo estiver localizado em /var/www/public/api-merchants/index.php
, você deve usar uma diretiva alias
e não uma diretiva root
. Consulte este documento para obter detalhes.
Você não tem meios para executar arquivos PHP dentro dessa nova raiz, então o seu bloco location ~ \.php
location assumirá. Você precisa usar um bloco de localização aninhado e replicar sua instrução PHP (por exemplo, fastcgi_pass
) dentro dela. Além disso, use o modificador ^~
para impedir que o outro bloco de localização location ~ \.php
assuma o controle. Consulte este documento para obter detalhes.
Por exemplo:
location ^~ /v1/merchants {
alias /var/www/public/api-merchants;
if (!-e $request_filename) { rewrite ^ /v1/merchants/index.php last; }
location ~ \.php$ {
if (!-f $request_filename) { return 404; }
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_pass ...;
}
}
Evito usar try_files
com alias
devido a problema . Observe este aviso sobre o uso de if
.