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

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