Miklix

Matcha plats baserat på filtillägg med NGINX

Publicerad: 15 februari 2025 kl. 01:17:32 UTC
Senast uppdaterad: 12 januari 2026 kl. 08:35:52 UTC

Den här artikeln förklarar hur man gör mönstermatchning baserat på filändelser i platskontexter i NGINX, vilket är användbart för att skriva om URL:er eller på annat sätt hantera filer olika baserat på deras typ.


Denna sida har maskinöversatts från engelska för att göra den tillgänglig för så många som möjligt. Tyvärr är maskinöversättning ännu inte en fulländad teknik, så fel kan uppstå. Om du föredrar det kan du se den engelska originalversionen här:

Match Location Based on File Extension with NGINX

Informationen i det här inlägget är baserad på NGINX 1.4.6 som körs på Ubuntu Server 14.04 x64. Den kan vara giltig för andra versioner, men inte nödvändigtvis.

Jag är inte så bra på reguljära uttryck (något jag nog borde jobba på, jag vet), så jag behöver ofta läsa på om det när jag måste göra mer än den allra enklaste mönstermatchning i till exempel NGINX:s platskontext.

En sak som är mycket användbar om du behöver hantera specifika filtyper på olika sätt är möjligheten att matcha en plats baserat på filändelsen på den begärda filen. Och det är väldigt enkelt också, din platsdirektiv kan helt enkelt se ut så här:

location ~* \.(js|css|html|txt)$
{
    // do something here
}

Naturligtvis kan du bara ändra tilläggen till vad du vill.

Exemplet ovan är skiftlägeskänsligt (till exempel matchar det både .js och .JS). Om du vill att det ska vara skiftlägeskänsligt tar du bara bort * efter ~.

Vad du gör med matchningen är upp till dig; vanligtvis skriver du om den till en backend som gör någon form av förbehandling, eller så kanske du bara vill läsa filerna från andra mappar än vad de ser ut som för allmänheten, möjligheterna är oändliga ;-)

Dela på BlueskyDela på FacebookDela på LinkedInDela på TumblrDela på XDela på LinkedInFäst på Pinterest

Mikkel Christensen

Om författaren

Mikkel Christensen
Mikkel är skaparen och ägaren av miklix.com. Han har över 20 års erfarenhet som professionell datorprogrammerare/mjukvaruutvecklare och är för närvarande heltidsanställd på ett stort europeiskt IT-bolag. När han inte bloggar ägnar han sin fritid åt en mängd olika intressen, hobbies och aktiviteter, vilket i viss mån kan återspeglas i de olika ämnen som behandlas på den här webbplatsen.