Местоположение Nginx соответствует нескольким расширениям, если путь не начинается с определенного слова - PullRequest
0 голосов
/ 17 декабря 2018

Как мне написать блок местоположения, соответствующий любому пути, заканчивающемуся следующими расширениями:

jpg | jpeg | gif | css | png | js | ico | json | xml | txt | html

Если путь не начинается с "/ rails" (например, /rails/randomstring/image.png)?

В настоящее время у меня есть этот основной блок:

location ~* \.(jpg|jpeg|gif|css|png|js|ico|json|xml|txt|html)$ {
  gzip_static on;
  gzip on;
  expires max;
  add_header Cache-Control public;
}

Но это будетсопоставьте "/rails/randomstring/image.png", и я этого не хочу.

1 Ответ

0 голосов
/ 17 декабря 2018

Вы можете привязать отрицательный взгляд к началу строки:

^(?!\/rails).*(?:jpg|jpeg|gif|css|png|js|ico|json|xml|txt|html)

Демо

...