try_files tenta o caminho literal especificado em relação à diretiva raiz definida e define o ponteiro do arquivo interno. Se você usar por exemplo try_files /app/cache/ $uri @fallback;
com index index.php index.html;
, ele testará os caminhos nesta ordem:
-
$document_root/app/cache/index.php
-
$document_root/app/cache/index.html
-
$document_root$uri
antes de finalmente redirecionar internamente para o local denominado @fallback. Você também pode usar um arquivo ou um código de status ( =404
) como seu último parâmetro, mas se estiver usando um arquivo, deve existir .
Você deve notar que o próprio try_files não emitirá um redirecionamento interno para nada além do último parâmetro. Isso significa que você não pode fazer o seguinte: try_files $uri /cache.php @fallback;
, pois isso fará com que o nginx defina o ponteiro de arquivo interno como $ document_root / cache.php e o sirva, mas como não há redirecionamento interno, os locais não são reavaliados e, como tal, será servido como texto simples. (O motivo pelo qual ele trabalha com arquivos PHP como o índice é que a diretiva de índice irá emitir um redirecionamento interno)