Зіставте місцезнаходження на основі розширення файлу з NGINX
Опубліковано: 15 лютого 2025 р. о 01:18:07 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). Якщо ви хочете, щоб він був чутливим до регістру, просто видаліть * після ~.
Що ви робите з матчем, залежить від вас; Як правило, ви переписуєте його на сервер, який виконує якусь попередню обробку, або ви можете просто захотіти прочитати файли з інших папок, ніж те, як це виглядає для громадськості, можливості безмежні ;-)