Miklix

Сопоставление местоположения на основе расширения файла с 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 может выглядеть примерно так:

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

Конечно, вы можете просто изменить расширения на любые необходимые вам.

Приведённый выше пример нечувствителен к регистру (например, он будет соответствовать как .js, так и .JS). Если вы хотите, чтобы регистр был чувствительностью, просто удалите * после ~.

Что вы будете делать с результатами матча — решать вам; как правило, вы перепишете код на бэкэнд, который будет выполнять какую-либо предварительную обработку, или же вы можете просто захотеть прочитать файлы из других папок, а не из тех, которые видны публике — возможности безграничны ;-)

Поделиться на BlueskyПоделиться на FacebookПоделиться на LinkedInПоделиться на TumblrПоделиться на XПоделиться на LinkedInЗакрепить на Pinterest

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

Об авторе

Миккель Кристенсен
Миккель - создатель и владелец сайта miklix.com. Он имеет более чем 20-летний опыт работы в качестве профессионального программиста/разработчика программного обеспечения и в настоящее время работает на полную ставку в крупной европейской IT-корпорации. Когда он не ведет блог, то тратит свое свободное время на огромное количество интересов, хобби и занятий, что в некоторой степени отражается в разнообразии тем, освещаемых на этом сайте.