Nginx“位置~。”与“位置〜* \。”

Posted

技术标签:

【中文标题】Nginx“位置~。”与“位置〜* \\。”【英文标题】:Nginx "location ~ ." vs "location ~* \."Nginx“位置~。”与“位置〜* \。” 【发布时间】:2017-06-06 10:03:48 【问题描述】:

以下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;

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

【问题讨论】:

【参考方案1】:

这是正则表达式位置块的三种形式。详情请见this document。

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

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

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

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

【讨论】:

非常感谢“特工史密斯”!

以上是关于Nginx“位置~。”与“位置〜* \。”的主要内容,如果未能解决你的问题,请参考以下文章

什么是正确的 nginx 位置规则以仅将 URI 中的第一个路径元素与 CGI 可执行文件匹配?

nginx位置波浪号

如何将 nginx 位置添加回 302 重定向响应位置

未找到 nginx 位置 404

为啥 nginx 位置返回 404 错误?

mac M1 nginx配置文件位置