Eu olhei para a documentação do nginx e ela ainda me confunde totalmente.
Como try_files
funciona? Aqui está o que a documentação diz:
try_files
sintaxe: try_files caminho1 [caminho2] uri
padrão: nenhum
contexto: servidor, localização
disponibilidade: 0.7.27
Verifica a existência de arquivos em ordem e retorna o primeiro arquivo encontrado. Uma barra à direita indica um diretório - $ uri /. No caso de nenhum arquivo ser encontrado, um redirecionamento interno para o último parâmetro é chamado. O último parâmetro é o URI de fallback e deve existir, caso contrário, um erro interno será gerado. Ao contrário da reescrita, $ args não serão preservados automaticamente se o fallback não for um local nomeado. Se você precisar de args preservados, faça isso explicitamente:
Eu não entendo como ele verifica os caminhos e se eu não quiser um erro interno, mas ele retomar o restante do caminho em um esforço para encontrar outro arquivo?
Se eu quiser tentar um arquivo em cache /path/app/cache/url/index.html
e se ele não tentar, /path/app/index.php
como eu escreveria isso? Se eu escrevesse:
try_files /path/app/cache/ $uri
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php-fastcgi/php-fastcgi.socket;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
Eu tenho index index.php index.html index.htm;
. Quando eu visitar /urlname
, ele tentará verificar /path/app/cache/urlname/index.php
então /path/app/cache/urlname/index.html
? Se ignorarmos tudo depois, try_files
é possível try_files
verificar a pasta de cache? Eu tenho tentado e falhei.