通用匹配指不带修饰符的前缀匹配,如location /static {…},按最长前缀匹配且不区分大小写;优先级低于精确和正则匹配,不可用通配符,需配合root或alias使用。

在 Nginx 的 location 配置中,“通用匹配”通常指**不带任何修饰符的前缀匹配(即普通字符串匹配)**,它是最常用、最基础的匹配方式,也是默认行为。
通用匹配的写法
直接写路径字符串,不加任何前缀符号(如 ^~、~、~*、=):
-
location /static { ... }—— 匹配所有以/static开头的请求路径 -
location /api { ... }—— 匹配/api、/api/user、/api/v1/data等 -
location / { ... }—— 匹配所有请求(因为所有路径都以/开头),常作为兜底配置
匹配逻辑和优先级
通用匹配属于“前缀匹配”,Nginx 会找出**最长的匹配前缀**。注意:它不区分大小写(除非文件系统敏感),也不支持正则,纯字符串比较:
-
location /a和location /ab同时存在时,/ab/123会命中/ab(更长) -
location /总是能匹配,但优先级最低(只有没其他更长前缀时才生效) - 它排在精确匹配(
=)和正则匹配(~、~*)之后,但在正则之前先做前缀比对
常见误区与建议
别把通用匹配当成“通配符”或“模糊匹配”——它不会自动补尾斜杠,也不支持 * 或 ?:
- ❌
location /img/*.jpg—— 语法错误,这不是通用匹配,也不是合法写法 - ✅ 要匹配特定后缀,用正则:
location ~ \.jpg$ { ... } - ⚠️
location /admin会匹配/admin、/admin/、/admin/login,但不会自动重定向或处理尾部斜杠逻辑,需自行控制
配合 root / alias 使用
通用匹配常配合 root 或 alias 提供静态资源服务:
-
location /static { root /var/www; }→ 请求/static/css/app.css映射到/var/www/static/css/app.css -
location /static { alias /var/www/assets/; }→ 同样请求映射到/var/www/assets/css/app.css(注意alias会替换整个匹配路径)


















