Nginx "location ~ ." 对比 "location ~* \."

Nginx "location ~ ." vs "location ~* \."

以下3个指令有区别吗?

location ~* \.(png)$ {
  expires max;
  log_not_found off;
}

location ~ \.(png)$ {
  expires max;
  log_not_found off;
}

location ~ .(png)$ {
  expires max;
  log_not_found off;
}

提前感谢您抽出宝贵时间。

这是正则表达式定位块的三种形式。有关详细信息,请参阅 this document

~* 运算符使测试用例不敏感。

. 字符在正则表达式中具有特殊含义:匹配任何单个字符(很像 ? 在 shell glob 中的作用)。

\. 序列(转义点)匹配文字点字符。这意味着第三个示例可能不是您想要的(假设您正在尝试匹配以 .png 结尾的 URI)。

有关正则表达式的更多信息,请参阅 this document