Miklix

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.


Denne side er blevet maskinoversat fra engelsk for at gøre den tilgængelig for så mange mennesker som muligt. Desværre er maskinoversættelse endnu ikke en perfekt teknologi, så der kan forekomme fejl. Hvis du foretrækker det, kan du se den originale engelske version her:

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:

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

Del på BlueskyDel på FacebookDel på LinkedInDel på TumblrDel på XDel på LinkedInFastgør på Pinterest

Mikkel Bang Christensen

Om forfatteren

Mikkel Bang Christensen
Mikkel er skaberen og ejeren af miklix.com. Han har over 20 års erfaring som professionel computerprogrammør/softwareudvikler og er i øjeblikket fuldtidsansat i en stor europæisk IT-virksomhed. Når han ikke blogger, bruger han sin fritid på en lang række interesser, hobbyer og aktiviteter, som i et vist omfang afspejles i de mange forskellige emner, der dækkes på dette websted.