Match placering baseret på filudvidelse med NGINX
Udgivet: 15. februar 2025 kl. 01.39.25 UTC
Denne artikel forklarer, hvordan man laver mønstermatchning baseret på filudvidelser i lokationskontekster i NGINX, nyttigt til URL-omskrivning eller på anden måde håndtering af filer forskelligt baseret på deres type.
Match Location Based on File Extension with NGINX
Oplysningerne i dette indlæg er baseret på NGINX 1.4.6, der kører på Ubuntu Server 14.04 x64. Det er muligvis ikke gyldigt for andre versioner.
Jeg er ikke så god til regulære udtryk (noget jeg nok burde arbejde på, jeg ved det), så jeg har ofte brug for at læse op på det, når jeg skal gøre mere end det allersimpledeste af mønstermatchning i for eksempel NGINX's lokalitetskontekst .
En, der er meget nyttig, hvis du har brug for at håndtere specifikke filtyper anderledes, er evnen til at matche en placering baseret på udvidelsen af den anmodede fil. Og det er også meget nemt, dit placeringsdirektiv kunne simpelthen se sådan ud:
{
// do something here
}
Du kan selvfølgelig bare ændre udvidelserne til hvad du har brug for.
Ovenstående eksempel skelner mellem store og små bogstaver (det vil f.eks. matche både .js og .JS). Hvis du ønsker, at den skal skelne mellem store og små bogstaver, skal du bare fjerne * efter ~.
Hvad du gør med kampen er op til dig; typisk ville du omskrive det til en back-end, der udfører en form for forbehandling, eller du vil måske bare læse filerne fra andre mapper, end det ser ud for offentligheden, mulighederne er uendelige ;-)