Назад | Перейти на главную страницу

В чем разница между регулярными выражениями Nginx ~ и ~ *?

В чем разница между Nginx ~ и ~* регулярные выражения?

Например:

if ($http_referer ~* www.foobar.net) {
    ...
}

против

if ($http_referer ~ www.foobar.net) {
    ...
}

~: Если присутствует модификатор тильды, это местоположение будет интерпретировано как совпадение регулярного выражения с учетом регистра.

~ *: Если используются модификаторы тильды и звездочки, блок местоположения будет интерпретироваться как совпадение регулярного выражения без учета регистра.

cduffin правильный.

Вот пример использования этого регулярного выражения для блока местоположения, чтобы отклонить URI, которые пытаются получить доступ к определенному типу файла (при условии, что мы используем try_files ниже в конфигурации nginx)

location ~* \.(txt|log|config)$ {
    return 403;
}