Съпоставяне на местоположение въз основа на файлово разширение с NGINX
Публикувано: 15 февруари 2025 г. в 1:38:50 ч. 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). Ако искате да е чувствителен към главни и малки букви, просто премахнете * след ~.
Какво ще направите с мача зависи от вас; обикновено го пренаписвате в бек-енд, който извършва някаква предварителна обработка, или може просто да искате да прочетете файловете от други папки, различни от това, което изглежда на обществеността, възможностите са безкрайни ;-)