nginx位置匹配扩展名中的正则表达式,不带“解析”

问题描述 投票:2回答:1

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

我在nginx配置中有一个位置块,以确保图像和其他媒体被缓存。但是,如果URL中包含“ resolve”,则不应匹配并跳过该块。我无法正常工作。我从开始就看过负面评论,但我想我还不完全了解它是如何工作的。

这是我的方块:

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

谁能向正确的方向发送给我?

regex nginx nginx-location
1个回答
2
投票

前瞻可能会有所帮助:

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

[(?!.*resolve)确保字符串中没有resolve

请参见proof & explanation

© www.soinside.com 2019 - 2024. All rights reserved.