Miklix

Ujemanje lokacije na podlagi razširitve datoteke z NGINX

Objavljeno: 15. februar 2025 ob 1:17:18 dop. UTC
Nazadnje posodobljeno: 12. januar 2026 ob 8:35:51 dop. UTC

Ta članek pojasnjuje, kako v NGINX-u izvesti ujemanje vzorcev na podlagi končnic datotek v kontekstih lokacij, kar je uporabno za prepisovanje URL-jev ali drugačno obravnavanje datotek glede na njihovo vrsto.


Ta stran je bila strojno prevedena iz angleščine, da bi bila dostopna čim večjemu številu ljudi. Žal strojno prevajanje še ni popolna tehnologija, zato lahko pride do napak. Če želite, si lahko izvirno angleško različico ogledate tukaj:

Match Location Based on File Extension with NGINX

Informacije v tej objavi temeljijo na NGINX 1.4.6, ki deluje na Ubuntu Serverju 14.04 x64. Morda veljajo za druge različice, morda pa tudi ne.

Nisem ravno dober v regularnih izrazih (vem, da bi moral verjetno delati na tem), zato moram pogosto prebrati o tem, ko moram narediti več kot le najpreprostejše ujemanje vzorcev, na primer v kontekstu lokacije NGINX.

Zelo uporabna možnost, če morate določene vrste datotek obravnavati drugače, je možnost ujemanja lokacije glede na končnico zahtevane datoteke. In to je zelo preprosto, vaša direktiva za lokacijo bi lahko izgledala takole:

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

Seveda lahko razširitve preprosto spremenite po svojih željah.

Zgornji primer ne razlikuje med velikimi in malimi črkami (na primer, ujemal se bo z datotekama .js in .JS). Če želite, da razlikuje med velikimi in malimi črkami, preprosto odstranite * za znakom ~.

Kaj boste storili z ujemanjem, je odvisno od vas; običajno ga boste prepisali v zaledni program, ki izvaja nekakšno predobdelavo, ali pa boste morda želeli datoteke prebrati iz drugih map, kot so videti javnosti, možnosti so neskončne ;-)

Delite na BlueskyDelite na FacebookuDelite na LinkedInuDelite na TumblrDelite na XDelite na LinkedInuPripni na Pinterest

Mikkel Christensen

O avtorju

Mikkel Christensen
Mikkel je avtor in lastnik spletne strani miklix.com. Ima več kot 20 let izkušenj kot profesionalni računalniški programer/razvijalec programske opreme in je trenutno za polni delovni čas zaposlen v veliki evropski IT korporaciji. Kadar ne piše bloga, svoj prosti čas posveča številnim interesom, hobijem in dejavnostim, kar se do neke mere odraža v raznolikosti tem na tem spletnem mestu.