Nginx ~ 和 ~* 正则表达式之间有什么区别?

Nginx ~ 和 ~* 正则表达式之间有什么区别?

~Nginx和正则表达式有什么区别~*?

例如:

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

对比

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

答案1

~:如果存在波浪号修饰符,则该位置将被解释为区分大小写的正则表达式匹配。

~*:如果使用波浪号和星号修饰符,则位置块将被解释为不区分大小写的正则表达式匹配。

答案2

cduffin 是正确的。

下面是使用此正则表达式作为位置块以拒绝尝试访问特定文件类型的 uri 的示例(假设我们在 nginx 配置中使用 try_files)

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

相关内容