Match placering baseret på filudvidelse med NGINX
Udgivet: 15. februar 2025 kl. 01.39.25 UTC
Sidst opdateret: 12. januar 2026 kl. 08.35.39 UTC
Denne artikel forklarer, hvordan man udfører mønstermatchning baseret på filtypenavne i lokationskontekster i NGINX, hvilket er nyttigt til URL-omskrivning eller anden 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 kan være gyldigt for andre versioner, men det kan være ugyldigt.
Jeg er ikke særlig 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 lave mere end den allersimpleste mønstermatchning i for eksempel NGINX's lokationskontekst.
En meget nyttig funktion, hvis du har brug for at håndtere specifikke filtyper forskelligt, er muligheden for at matche en placering baseret på filtypenavnet på den ønskede fil. Og det er også meget nemt, din placeringsdirektiv kan simpelthen se sådan ud:
{
// do something here
}
Du kan selvfølgelig bare ændre udvidelserne, som du har brug for.
Ovenstående eksempel skelner ikke mellem store og små bogstaver (for eksempel vil det matche både .js og .JS). Hvis du vil have, at der skelnes mellem store og små bogstaver, skal du blot fjerne * efter ~.
Hvad du gør med matchen er op til dig; typisk ville du omskrive den til en backend, der udfører en form for forbehandling, eller du vil måske bare læse filerne fra andre mapper end dem, de ser ud til offentligheden, mulighederne er uendelige ;-)
