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