Emplacement de correspondance basé sur l'extension de fichier avec NGINX
Publié : 15 février 2025 à 01:42:04 UTC
Cet article explique comment effectuer 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 en fonction de leur type.
Match Location Based on File Extension with NGINX
Les informations contenues dans cet article sont basées sur NGINX 1.4.6 exécuté sur Ubuntu Server 14.04 x64. Elles peuvent ou non être valables 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 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 d'emplacement pourrait simplement ressembler à ceci :
{
// do something here
}
Bien sûr, vous pouvez simplement modifier les extensions selon vos besoins.
L'exemple ci-dessus ne fait pas la distinction entre les majuscules et les minuscules (par exemple, il correspondra à la fois à .js et à .JS). Si vous souhaitez qu'il soit sensible à la casse, supprimez simplement le * après le ~.
Ce que vous faites avec la correspondance dépend de vous ; en général, vous la 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 ;-)