Miklix

Locatie matchen op basis van bestandsextensie met NGINX

Gepubliceerd: 15 februari 2025 om 01:09:54 UTC

In dit artikel wordt uitgelegd hoe u patroonherkenning kunt toepassen op basis van bestandsextensies in locatiecontexten in NGINX. Dit is handig voor het herschrijven van URL's of voor het op een andere manier anders verwerken van bestanden op basis van hun type.


Deze pagina is machinaal uit het Engels vertaald om hem voor zoveel mogelijk mensen toegankelijk te maken. Helaas is machinevertaling nog geen geperfectioneerde technologie, dus er kunnen fouten optreden. Als je dat liever hebt, kun je hier de originele Engelse versie bekijken:

Match Location Based on File Extension with NGINX

De informatie in dit bericht is gebaseerd op NGINX 1.4.6 dat draait op Ubuntu Server 14.04 x64. Het kan wel of niet geldig zijn voor andere versies.

Ik ben niet zo goed in reguliere expressies (iets waar ik waarschijnlijk aan zou moeten werken, dat weet ik), dus ik moet me er vaak in verdiepen als ik meer moet doen dan de meest eenvoudige patroonherkenning in bijvoorbeeld de locatiecontext van NGINX.

Eentje die erg handig is als u specifieke bestandstypen anders wilt afhandelen, is de mogelijkheid om een locatie te matchen op basis van de extensie van het gevraagde bestand. En het is ook erg makkelijk, uw locatierichtlijn zou er gewoon zo uit kunnen zien:

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

Uiteraard kunt u de extensies naar wens wijzigen.

Het bovenstaande voorbeeld is hoofdlettergevoelig (het komt bijvoorbeeld overeen met .js en .JS). Als u wilt dat het hoofdlettergevoelig is, verwijdert u gewoon de * na de ~.

Wat u met de match doet, is aan u. Normaal gesproken schrijft u de match over naar een back-end die een soort van pre-processing uitvoert, maar u kunt er ook voor kiezen om de bestanden gewoon uit andere mappen te lezen dan die waarvan het publiek ze ziet. De mogelijkheden zijn eindeloos ;-)

Delen op BlueskyDelen op FacebookDelen op LinkedInDelen op TumblrDelen op XDelen op LinkedInPin op Pinterest

Mikkel Bang Christensen

Over de auteur

Mikkel Bang Christensen
Mikkel is de bedenker en eigenaar van miklix.com. Hij heeft meer dan 20 jaar ervaring als professioneel computerprogrammeur/softwareontwikkelaar en werkt momenteel fulltime voor een groot Europees IT-bedrijf. Als hij niet blogt, besteedt hij zijn vrije tijd aan een breed scala aan interesses, hobby's en activiteiten, die tot op zekere hoogte weerspiegeld kunnen worden in de verscheidenheid aan onderwerpen op deze website.