NGINX | Что означает тильда ~? — efim360.ru

NGINX | Что означает тильда ~?

Синтаксис конфигурационного файла веб-сервера NGINX умеет работать с регулярными выражениями. Эти же регулярные выражения можно также использовать в настройках конфигурационных файлов виртуальных хостов.

Из-за "сухой" официальной документации порой не всегда понятно что означает та или иная конструкция, особенно когда ищутся примеры реализаций "конфигов" в сети интернет.

Одной из таких "непоняток" является символ тильды - “~”.

 

Из документации № 1

Перед регулярным выражением ставится символ “~”, если при сравнении следует учитывать регистр символов.

Перевожу для тех кто не понял. В любом нормальном человеческом языке есть алфавит - это буквы. Так вот, в письменной форме каждая буква алфавита может иметь два варианта написания: строчное и ЗАГЛАВНОЕ. Простыми словами: маленькая и БОЛЬШАЯ буквы.

Если для вас ВАЖНО учитывать какой будет буква, тогда нужно ставить тильду ~. После этого регулярное выражение будет различать слова "СлОн" и "слон".

 

Из документации № 2

Перед регулярным выражением ставятся символы “~*” (1.0.4), если регистр символов учитывать не нужно. Регулярное выражение может содержать именованные и позиционные выделения, которые могут затем использоваться в других директивах совместно с результирующей переменной.

В этом случае слова "СлОн" и "слон" будут восприниматься регулярным выражением абсолютно одинаково.

 

Информационные ссылки

Эту информацию можно найти в описании работы NGINX - https://nginx.org/ru/docs/http/ngx_http_core_module.html#location

И модуле map по адресу - https://nginx.org/ru/docs/http/ngx_http_map_module.html