Miklix

Emplacement de correspondance basé sur l'extension de fichier avec NGINX

Publié : 15 février 2025 à 01 h 38 min 14 s UTC

Cet article explique comment faire une correspondance de modèles en fonction des extensions de fichiers dans les contextes de localisation dans NGINX, utile pour la réécriture d'URL ou pour gérer les fichiers différemment selon leur type.


Cette page a été automatiquement traduite de l'anglais afin de la rendre accessible au plus grand nombre. Malheureusement, la traduction automatique n'est pas encore une technologie au point, des erreurs peuvent donc survenir. Si vous préférez, vous pouvez consulter la version originale en anglais ici :

Match Location Based on File Extension with NGINX

Les renseignements contenus dans cet article sont basés sur NGINX 1.4.6 exécuté sur Ubuntu Server 14.04 x64. Cela peut être valable ou non pour d'autres versions.

Je ne suis pas très bon avec les expressions régulières (quelque chose sur lequel je devrais probablement travailler, je sais), donc j'ai souvent besoin de me renseigner à ce sujet lorsque je dois faire plus que la plus simple correspondance de modèles, par exemple dans le contexte de localisation de NGINX.

Ce qui est très utile si vous devez gérer différemment des types de fichiers spécifiques, c'est la possibilité de faire correspondre un emplacement en fonction de l'extension du fichier demandé. Et c'est très simple aussi, votre directive de localisation pourrait simplement ressembler à ceci :

location ~* \.(js|css|html|txt)$
{
    // do something here
}

Bien sûr, vous pouvez simplement modifier les extensions selon vos besoins.

L'exemple ci-haut n'est pas sensible à la casse (par exemple, il correspondra à la fois à .js et .JS). Si vous voulez que la casse soit respectée, il suffit de supprimer le * après le ~.

Ce que tu fais avec le match, c'est juste toi ; En général, vous le réécrivez dans un back-end qui effectue une sorte de prétraitement, ou vous pouvez simplement vouloir lire les fichiers à partir d'autres dossiers que ceux auxquels ils ressemblent pour le public, les possibilités sont infinies ;-)

Partager sur BlueskyPartager sur FacebookPartager sur LinkedInPartager sur TumblrPartager sur XPartager sur LinkedInÉpingler sur Pinterest

Mikkel Bang Christensen

À propos de l'auteur

Mikkel Bang Christensen
Mikkel est le créateur et propriétaire de miklix.com. Il a plus de 20 ans d'expérience en tant que programmeur informatique/développeur de logiciels professionnel et est actuellement employé à temps plein pour une grande société informatique européenne. Lorsqu'il ne blogue pas, il consacre son temps libre à une vaste gamme d'intérêts, de passe-temps et d'activités, qui peuvent dans une certaine mesure se refléter dans la variété des sujets abordés sur ce site Web.