Match plassering basert på filutvidelse med NGINX
Publisert: 15. februar 2025 kl. 01:09:05 UTC
Denne artikkelen forklarer hvordan du gjør mønstermatching basert på filutvidelser i stedskontekster i NGINX, nyttig for URL-omskriving eller på annen måte håndtere filer forskjellig basert på typen.
Match Location Based on File Extension with NGINX
Informasjonen i dette innlegget er basert på NGINX 1.4.6 som kjører på Ubuntu Server 14.04 x64. Det kan være eller ikke være gyldig for andre versjoner.
Jeg er ikke så god på regulære uttrykk (noe jeg nok burde jobbe med, jeg vet), så jeg trenger ofte å lese meg opp på det når jeg skal gjøre mer enn det aller enkleste med mønstermatching i for eksempel NGINX sin lokasjonskontekst .
En som er veldig nyttig hvis du trenger å håndtere spesifikke filtyper annerledes, er muligheten til å matche en plassering basert på utvidelsen av den forespurte filen. Og det er veldig enkelt også, plasseringsdirektivet kan ganske enkelt se slik ut:
{
// do something here
}
Selvfølgelig kan du bare endre utvidelsene til det du trenger.
Eksempelet ovenfor skiller ikke mellom store og små bokstaver (det vil for eksempel samsvare med både .js og .JS). Hvis du vil at det skal skille mellom store og små bokstaver, fjerner du bare * etter ~.
Hva du gjør med kampen er opp til deg; vanligvis vil du skrive den om til en backend som gjør en form for forhåndsbehandling, eller du vil kanskje bare lese filene fra andre mapper enn hva det ser ut for offentligheten, mulighetene er uendelige ;-)