Съпоставяне на местоположение въз основа на файлово разширение с 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.
Една от много полезните функции, ако трябва да обработвате специфични типове файлове по различен начин, е възможността за съпоставяне на местоположение въз основа на разширението на заявения файл. Освен това е много лесно, вашата директива за местоположение може да изглежда просто така:
{
// do something here
}
Разбира се, можете просто да промените разширенията на каквото ви е необходимо.
Горният пример е чувствителен към малки и големи букви (например, ще съвпада както с .js, така и с .JS). Ако искате да е чувствителен към малки и големи букви, просто премахнете * след ~.
Какво ще правите със съвпадението, зависи от вас; обикновено бихте го пренаписали в бекенд, който извършва някаква предварителна обработка, или може просто да искате да прочетете файловете от други папки, различни от това, което изглежда публично, възможностите са безкрайни ;-)
