У цій статті ми коротко пояснимо приклади регулярних виразів розташування Nginx.
Передумови
У цій статті передбачається, що Nginx вже встановлений у вашій системі.
Синтаксис директиви про розташування Nginx
Наступний синтаксис доступний для каталогу розташування у файлі конфігурації Nginx:
місцезнаходження [модифікатор] [відповідність URL]..
Блок розташування Nginx можна додати в серверний блок або в інше місце з деякими заздалегідь визначеними умовами. У наведеному вище синтаксисі модифікатор є необов’язковим параметром. Наявність модифікаторів у блоці розташування дозволяє Nginx обробляти URL-адреси в іншому порядку. Нижче наведено декілька модифікаторів із прикладами:
1. Відповідність усіх запитів блоку розташування Nginx
'/' Використовується для розташування префікса, щоб відповідати всім запитам. Однак, якщо тоді не буде здійснено пошук найкращих збігів, він буде використаний як останній результат.
Приклад
У наступному блоці розташування він буде відповідати всім запитам:
2. Знайдіть каталог за допомогою блоку розташування в Nginx
Наступний приклад буде відповідати будь-якому запиту в блоці розташування, який починається з / images /. Отже, пошук більш конкретного відповідного блоку щодо запитуваного URI. Однак, якщо Nginx не шукає більш конкретного збігу, тоді блок розташування буде обраний безпосередньо.
Приклад
У наведеному нижче прикладі Nginx буде відповідати будь-якому запиту в блоці розташування, який починається з / images /.
3. Точно збігається за допомогою модифікатора розташування '=' (дорівнює)
Модифікатор '=' знак рівності використовується, коли ви точно відповідаєте блоку розташування із запитаним URI.
Приклад
Nginx спочатку намагається відповідати найбільш конкретним місцеположенням префіксів. Однак у наступному прикладі модифікатор '=' у блоці розташування точно відповідатиме запитаному шляху префіксу, а потім припинить пошук кращих збігів.
..
У вищезазначеному прикладі блоку розташування модифікатор розташування '=' точно відповідатиме URL-адресу mydomain.com / imgs. URL-адреси mydomain / imgs / index.html 'або' mydomain / imgs / 'не буде відповідати умові.
4. Регулярний вираз з урахуванням регістру відповідає модифікатору Tilda (~)
Модифікатор tilda (~) виконує пошук відповідності регулярних виразів з урахуванням регістру щодо запитуваного URI і постійно шукає кращу відповідність.
Приклад
Модифікатор ~ у наступному прикладі виконує збіг регулярних виразів з урахуванням регістру (регулярний вираз) у блоці розташування:
..
5. Нечутливий до регістру збіг із використанням модифікатора tilda (~ *)
Знак тильди із модифікатором зірочки (~ *) відповідає будь-якому (без урахування регістру) запиту в наступному блоці розташування, який закінчується певним форматом файлу, таким як файл, що закінчується png, gif, ico, jpeg, jpg, css або js. Однак усі запити, що надсилаються до папки / imgs /, будуть розглянуті попереднім блоком розташування.
Приклад
У наступному блоці розташування він буде відповідати всім типам файлів, що не враховують регістр.
..
6. Модифікатор знаку Карет-Тильди (^ ~) для RegEx Match
Модифікатор caret-tilda (^ ~) використовується для виконання збігу регулярних виразів з урахуванням регістру щодо запитуваної URL-адреси. Отже, якщо відповідний URI буде збігатися в / imgs або / imgs / pico.png, він припиняє пошук, щоб знайти кращий збіг.
розташування ^ ~ / imgs..
Висновок
Ми обговорили кілька прикладів та важливі деталі щодо директиви про розташування Nginx разом із регулярним виразом. Ми також згадали про використання модифікаторів на прикладах у цій статті. Сподіваюся, ця стаття допоможе вам зрозуміти основну концепцію блоків розташування в NGINX. Дякую!