Miklix

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

Опубликовано: 15 февраля 2025 г. в 01:16:50 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Закрепить на Pinterest

Миккель Банг Кристенсен

Об авторе

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