我不是正则表达式中的上帝,并且坚持使用复杂的位置正则表达式。
我在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
谁能向正确的方向发送给我?
前瞻可能会有所帮助:
^(?!.*resolve).*\.(?:css|js|gif|jpeg|jpg|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$
[(?!.*resolve)
确保字符串中没有resolve
。