A expressão regular location
blocks é avaliada em ordem, portanto o bloco .php
deve ser colocado antes do bloco /test/...
, caso contrário os arquivos .php
em /test/
serão baixados em vez de serem executados. Consulte este documento para obter detalhes.
Sua melhor versão foi a segunda do passado. A expressão regular extrai apenas o elemento do caminho após o prefixo /test/
.
Apenas inverta os blocos location
. Por exemplo:
server {
server_name example.com;
root /var/www/example.com;
location ~ \.php$ {
...
}
location ~ /test/(?<content>[^/]+) {
try_files $uri $uri/ /test/$content/index.php?$args;
}
}