【问题标题】:Regex in nginx location match extension without "resolve"没有“解决”的 nginx 位置匹配扩展中的正则表达式
【发布时间】:2020-04-28 21:13:23
【问题描述】:

我不是正则表达式的神,我坚持使用复杂的位置正则表达式。

我的 nginx 配置中有一个位置块,以确保缓存图像和其他媒体。但如果“resolve”在 URL 中,它不应该匹配并跳过该块。我无法让它工作。我看过一个负面的lookbegind,但我认为我不完全理解它是如何工作的。

这是我的块:

location ~* \.(?:css|js|gif|jpeg|jpg|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ { //caching stuff }

它应该与以下网址匹配:

/media/cache/ps_product_admin_thumb/productimages/image.jpg

不是以下:

/media/cache/resolve/ps_product_admin_thumb/productimages/image.jpeg

谁能给我正确的方向?

【问题讨论】:

    标签: regex nginx nginx-location


    【解决方案1】:

    前瞻可能会有所帮助:

    ^(?!.*resolve).*\.(?:css|js|gif|jpeg|jpg|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$
    

    (?!.*resolve) 确保字符串中不存在resolve

    proof & explanation

    【讨论】:

      猜你喜欢
      • 2017-01-03
      • 2014-11-11
      • 2021-09-05
      • 1970-01-01
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多