Miklix

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.


Denne siden er maskinoversatt fra engelsk for å gjøre den tilgjengelig for så mange som mulig. Dessverre er maskinoversettelse ennå ikke en fullkommen teknologi, så det kan forekomme feil. Hvis du foretrekker det, kan du se den engelske originalversjonen her:

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:

location ~* \.(js|css|html|txt)$
{
    // 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 ;-)

Del på BlueskyDel på FacebookDel på LinkedInDel på TumblrDel på XDel på LinkedInFest på Pinterest

Mikkel Bang Christensen

Om forfatteren

Mikkel Bang Christensen
Mikkel er skaperen og eieren av miklix.com. Han har over 20 års erfaring som profesjonell dataprogrammerer/programvareutvikler og er for tiden ansatt på fulltid i et stort europeisk IT-selskap. Når han ikke blogger, bruker han fritiden sin på en lang rekke interesser, hobbyer og aktiviteter, noe som til en viss grad kan gjenspeiles i de mange ulike temaene som dekkes på dette nettstedet.