使用 location = / 可实现首页精确匹配,因 = 修饰符要求 URI 完全等于根路径,优先级最高;普通 location / 是最低优先级的前缀匹配,会误匹配子路径。

直接用 location = / 就能实现首页的精确匹配,这是 Nginx 中优先级最高的匹配方式,请求 / 时立刻命中、不走其他规则、不查正则、不比前缀长度。
为什么必须用 = 修饰符?
因为普通写法 location / 是通用前缀匹配,它会匹配所有以 / 开头的路径(比如 /api、/about),优先级最低;而 location = / 要求 URI 完全等于根路径,多一个字符(如 /?、//、/index.html)都不算匹配成功,所以它天然适合做首页专属路由。
典型配置示例
以下是最简有效的首页精确匹配写法:
server {
listen 80;
server_name example.com;
<pre class='brush:php;toolbar:false;'># ✅ 精确匹配首页,最高优先级
location = / {
root /usr/share/nginx/html;
index index.html;
}
# 其他规则(不会干扰首页)
location /api/ {
proxy_pass http://backend;
}
location ~ \.js$ {
expires 1y;
}}
需要注意的关键细节
- 查询参数不影响匹配:请求
http://example.com/?ref=home仍会命中location = / - 结尾斜杠必须严格:请求
/匹配,但/index.html或/后带路径均不匹配 - 不能和
root或alias混用导致 404:若用alias,需确保路径末尾有斜杠,例如alias /var/www/home/; - 如果同时存在
location = /和location /,前者一定生效,后者对首页完全无效


















