尝试合并两种NGINX位置指令

snvhrwxg  于 2023-08-03  发布在  Nginx
关注(0)|答案(1)|浏览(113)

日安。我的任务是为文件夹/themes/中的文件编写一个位置指令,该文件夹与jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc匹配
我有两个相互排斥的指令:

location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
    ...
}

字符串
和/或

location /images/ {
     ...
}


我已经读过如果或否则限定符在NGINX的位置指令中是强烈不鼓励的。
我试着研究了几篇关于NGINX Location头的文章,并测试了多个版本。没有一个成功。

r8uurelv

r8uurelv1#

那么,您希望一个location指令只匹配子目录/images中的特定文件类型吗?所以你想提供/images/test.jpg而不是/test.jpg?是否要匹配/images/xxx/test.jpg
你的第一个位置块定义了一个正则表达式,你可以只把条件为/images的开头放在那里,如下所示:

location ~* ^\/images\/.*\.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ { ... ... }

字符串
https://regex101.com/r/Elk2RM/1

相关问题