没有 "resolve" 的 nginx 位置匹配扩展中的正则表达式

Regex in nginx location match extension without "resolve"

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

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

这是我的街区:

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

它应该匹配以下 URL:

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

但是不是以下:

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

谁能告诉我正确的方向?

前瞻可能有所帮助:

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

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

proof & explanation