Menu Fermer

Comment utiliser try_files sur Nginx avec des exemples

Nginx est un serveur Web puissant qui nous offre beaucoup de fonctionnalités et de personnalisation pour divers besoins. L’une des capacités du serveur NGINX est sa capacité à utiliser des directives pour configurer le serveur de manière simple, propre et fiable.
Une directive couramment utilisée est le try_files qui nous permet de configurer l’emplacement URI et comment Nginx sert divers fichiers en fonction de la demande reçue.

Dans ce tutoriel, je vous montre rapidement la façon d’utiliser la directive try_Files et d’apprendre quand et comment l’utiliser.

Comment utiliser try_files sur Nginx avec des exemples

Comment utiliser try_files sur Nginx

La directive try_files essaie le chemin littéral que vous spécifiez par rapport à la directive racine définie et définit le pointeur de fichier interne.
Elle permet à votre serveur de vérifier séquentiellement si une liste de fichiers existe et servir la première correspondante. Nginx essaye de répondre avec différents fichiers l’un après l’autre, au cas où il ne serait pas en mesure de trouver un fichier correspondant à envoyer.

La syntaxe est :

try_files file ... uri;
try_files file ... =code;

Voici un exemple d’utilisation de try_files :

location / {
    try_files $uri $uri/ /default/index.html;
}

Dans l’exemple ci-dessus, lorsqu’un utilisateur demande une URL, Nginx essaiera $URI qui est l’URL demandée en tant que tel.
Si cela renvoie la réponse de 404 pages introuvable, alors Nginx essaiera $uri/, c’est-à-dire l’URL demandée avec une barre oblique vers l’avant. Il le fera sans envoyer le code de réponse 404 à l’utilisateur.
Si ces deux renvoient le code de réponse 404, Nginx renvoie simplement le fichier html sur /default/index.html, en tant qu’option de repli.

Seulement si toutes ces options échouent, alors Nginx renverra le code de réponse 404.

Une utilisation courante pour servir des applications PHP comme WordPress est de tester l’URL et si celle-ci n’est pas présente de renvoyer l’index PHP avec l’argument. en paramètre.

try_files $uri $uri/ /index.php?$args;

La directive try_files vous donne aussi la possibilité de renvoyer vers un bloc ou un code HTTP :

location / {
        include /etc/nginx/header.conf;
        set $skip_cache 1;
        try_files $uri $uri/ @rewriteapp;
}

location @rewriteapp {
        rewrite ^(.*)$ /app.php/$1 last;

}