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