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