regex - 没有“解决”的 nginx 位置匹配扩展中的正则表达式
问题描述
我不是正则表达式的神,并且坚持使用复杂的位置正则表达式。
我的 nginx 配置中有一个位置块,以确保缓存图像和其他媒体。但如果 URL 中有“resolve”,则它不应匹配并跳过该块。我无法让它工作。我看过一个负面的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
字符串中不存在。
推荐阅读
- javascript - 我们如何调整 sap.m.table 中的行高?
- angular - 无法匹配任何路由。Nativescript 中的 URL 段错误
- kubernetes - Helm 安装 Kubernetes Federation v2 错误
- jquery - Bootstrap 导航栏响应式
- python-3.x - 使用预训练向量的问题。标记化问题
- php - Guzzle 使用破折号从属性中获取价值?
- python - Tensorflow Hub 和 JS:如何微调预训练模型并将其导出以在 Tensorflow.js 中使用?
- python - subpods.img 的返回类型
- html - CSS floats 和 divs + Responsive 的组合
- plsql - PL SQL - 统计查询