J'ai regardé la documentation de nginx et cela me laisse encore complètement perplexe.
Comment try_files
travail ? Voici ce que dit la documentation :
essayer_fichiers
syntaxe : try_files path1 [path2] uri
par défaut : aucun
contexte : serveur, emplacement
disponibilité : 0.7.27
Vérifie l'existence des fichiers dans l'ordre, et retourne le premier fichier. qui a été trouvé. Une barre oblique de fin de ligne indique un répertoire - $uri /. Dans le cas où aucun fichier n'est trouvé, une redirection interne vers le dernier est invoquée. Le dernier paramètre est l'URI de repli et le paramètre doit existent, sinon une erreur interne sera levée. Contrairement à rewrite, $args n'est pas automatiquement préservé si le fallback n'est pas un emplacement nommé. Si vous souhaitez que les args soient préservés, vous devez le faire de manière explicitement :
Je ne comprends pas comment il vérifie les chemins et que faire si je ne veux pas d'une erreur interne mais qu'il reprenne le reste du chemin dans le but de trouver un autre fichier ?
Si je veux essayer un fichier en cache à /path/app/cache/url/index.html
et si cela échoue, essayer /path/app/index.php
comment pourrais-je écrire ça ? Si j'écrivais :
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;
J'ai index index.php index.html index.htm;
. Quand je visite /urlname
va-t-il essayer de vérifier /path/app/cache/urlname/index.php
puis /path/app/cache/urlname/index.html
? Si on ignore tout ce qui suit try_files
est-il possible pour try_files
pour vérifier le dossier cache ? J'ai essayé et n'ai pas réussi.