nginx regular expression

Regular Expressions list.

^ – означает, что соответствие будет искаться с начала строки, а не с любого символа. Выражение /box/ будет соответствовать и box-web и home-box-web, а /^box/ только первой строке.

$ – означает привязку к концу строки /index\.php/ будет соответствовать и site.ru/index.php и site.ru/index.php?v=3, выражение /index\.php$/ будет соответствовать только первому варианту.

.+ – любое количество символов. Точка – любой символ, комбинация .+ – один или больше любых символов.

\. – Так как точка специальный символ, то для того, чтобы обозначить точку, ее нужно экранировать слешем.

\w – любой символ, который может составить слово \w+ – любое количество таких символов (один или больше).

Имя сервера, заданное регулярным выражением, должно начинаться с символа тильды:

server_name ~^www\d+\.example\.net$;
в противном случае оно будет рассматриваться как точное, или же, если выражение содержит звёздочку (“*”), то как имя с маской (и, скорее всего, некорректное). Не забывайте ставить специальные символы начала (“^”) и конца (“$”) строки. По синтаксису они не требуются, но логически они могут быть нужны. Также заметьте, что все точки в доменных именах должны быть экранированы символом обратной косой черты. Регулярное выражение, содержащее символы “{” и “}”, необходимо экранировать:

server_name "~^(?\w\d{1,3}+)\.example\.net$";