location 写错顺序,请求就落到意料之外的块里。理解四种匹配的执行次序,能少掉很多头发。
操作步骤
location = /exact { # 1. 精确匹配,优先级最高 }
location ^~ /static { # 2. 前缀匹配,命中即停正则 }
location ~* \.php$ { # 3. 正则匹配,区分大小写用 ~ }
location / { # 4. 普通前缀,兜底 }
要点速览
- = 精确匹配优先级最高;^~ 是前缀匹配但一旦命中就跳过后续正则。
- 正则 ~ 和 ~* 按配置文件里的出现顺序依次尝试,写在前面的先匹配。
- 不带任何符号的普通前缀只作兜底,优先级最低。
记住口诀:精确 > 前缀停正则 > 正则顺序 > 普通前缀。