Miklix

Съпоставяне на местоположение въз основа на файлово разширение с NGINX

Публикувано: 15 февруари 2025 г. в 1:38:50 ч. UTC
Последна актуализация: 12 януари 2026 г. в 8:35:38 ч. UTC

Тази статия обяснява как да се извършва съпоставяне на шаблони въз основа на файлови разширения в контексти на местоположение в NGINX, което е полезно за пренаписване на URL адреси или по друг начин за обработка на файлове по различен начин въз основа на техния тип.


Тази страница е машинно преведена от английски език, за да бъде достъпна за възможно най-много хора. За съжаление машинният превод все още не е съвършена технология, така че могат да възникнат грешки. Ако предпочитате, можете да видите оригиналната версия на английски език тук:

Match Location Based on File Extension with NGINX

Информацията в тази публикация е базирана на NGINX 1.4.6, работещ на Ubuntu Server 14.04 x64. Тя може да е валидна или да не е валидна за други версии.

Не съм чак толкова добър в регулярните изрази (нещо, върху което вероятно трябва да поработя, знам), така че често ми се налага да чета по темата, когато трябва да направя нещо повече от най-простото съпоставяне на шаблони, например в контекста на местоположението на NGINX.

Една от много полезните функции, ако трябва да обработвате специфични типове файлове по различен начин, е възможността за съпоставяне на местоположение въз основа на разширението на заявения файл. Освен това е много лесно, вашата директива за местоположение може да изглежда просто така:

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

Разбира се, можете просто да промените разширенията на каквото ви е необходимо.

Горният пример е чувствителен към малки и големи букви (например, ще съвпада както с .js, така и с .JS). Ако искате да е чувствителен към малки и големи букви, просто премахнете * след ~.

Какво ще правите със съвпадението, зависи от вас; обикновено бихте го пренаписали в бекенд, който извършва някаква предварителна обработка, или може просто да искате да прочетете файловете от други папки, различни от това, което изглежда публично, възможностите са безкрайни ;-)

Споделете в BlueskyСподелете във FacebookСподелете в LinkedInСподелете в TumblrСподелете в XСподелете в LinkedInЗакачи в Пинтерест

Микел Кристенсен

За автора

Микел Кристенсен
Микел е създател и собственик на сайта miklix.com. Той има над 20 години опит като професионален компютърен програмист/разработчик на софтуер и в момента работи на пълен работен ден в голяма европейска ИТ корпорация. Когато не пише в блога, той прекарва свободното си време в широк спектър от интереси, хобита и дейности, които до известна степен могат да бъдат отразени в разнообразието от теми, обхванати в този уебсайт.