Сопоставление местоположения на основе расширения файла с NGINX
Опубликовано: 15 февраля 2025 г. в 01:16:50 UTC
Последнее обновление: 12 января 2026 г. в 08:35:50 UTC
В этой статье объясняется, как выполнять сопоставление шаблонов на основе расширений файлов в контексте местоположения в NGINX, что полезно для перезаписи URL-адресов или иным образом для обработки файлов по-разному в зависимости от их типа.
Match Location Based on File Extension with NGINX
Информация в этом сообщении основана на работе NGINX 1.4.6 на Ubuntu Server 14.04 x64. Она может быть или не быть актуальна для других версий.
Я не очень хорошо разбираюсь в регулярных выражениях (знаю, мне, наверное, стоит над этим поработать), поэтому мне часто приходится изучать их, когда нужно выполнить что-то большее, чем простое сопоставление с шаблоном, например, в контексте местоположения NGINX.
Очень полезная функция, позволяющая обрабатывать файлы разных типов по-разному, — это сопоставление местоположения на основе расширения запрашиваемого файла. И это очень просто: директива location может выглядеть примерно так:
{
// do something here
}
Конечно, вы можете просто изменить расширения на любые необходимые вам.
Приведённый выше пример нечувствителен к регистру (например, он будет соответствовать как .js, так и .JS). Если вы хотите, чтобы регистр был чувствительностью, просто удалите * после ~.
Что вы будете делать с результатами матча — решать вам; как правило, вы перепишете код на бэкэнд, который будет выполнять какую-либо предварительную обработку, или же вы можете просто захотеть прочитать файлы из других папок, а не из тех, которые видны публике — возможности безграничны ;-)
