Miklix

Matcha plats baserat på filtillägg med NGINX

Publicerad: 15 februari 2025 kl. 01:17:32 UTC

Den här artikeln förklarar hur man gör mönstermatchning baserat på filtillägg i platssammanhang i NGINX, användbart för URL-omskrivning eller på annat sätt hantera filer på olika sätt beroende 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. Det kan eller kanske inte är giltigt för andra versioner.

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å när jag ska göra mer än det allra enklaste av mönstermatchning i till exempel NGINX:s platssammanhang .

En som är mycket användbar om du behöver hantera specifika filtyper annorlunda är möjligheten att matcha en plats baserat på filtillägget på den begärda filen. Och det är väldigt enkelt också, ditt 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 behöver.

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

Vad du gör med matchen är upp till dig; vanligtvis skulle du skriva om det till en back-end som gör någon form av förbearbetning, eller så kanske du bara vill läsa filerna från andra mappar än vad det ser ut 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 Bang Christensen

Om författaren

Mikkel Bang 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.