Синтаксис конфигурационного файла веб-сервера 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