Регулярное выражение в nginx расширение соответствия местоположения без «разрешения» - PullRequest
2 голосов
/ 11 января 2020

Я не бог в Регулярных выражениях и застрял со сложным регулярным выражением местоположения.

У меня есть блок местоположения в моей конфигурации nginx, чтобы обеспечить кэширование изображений и других носителей. Но если «URL-адрес» указан в URL-адресе, он не должен совпадать и пропускать блок. Я не могу заставить его работать. Я смотрел на отрицательный взгляд, но думаю, что не совсем понимаю, как он работает.

Это мой блок:

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 / resolution / ps_product_admin_thumb / productimages / image.jpeg

Кто-нибудь, кто может отправить меня в нужном направлении?

1 Ответ

2 голосов
/ 11 января 2020

Может помочь прогноз:

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

(?!.*resolve) гарантирует, что resolve не существует в строке.

См. подтверждение и объяснение

...