You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx如何区分根路由与其他所有子路由的配置规则?

Nginx路由配置解决方案

原配置失效的核心原因是Nginx的location匹配优先级规则:正则匹配类型的location优先级高于普通前缀匹配类型的location,你写的location ~* /.*属于正则匹配,可匹配所有路径(包括根路径/),所以所有请求都会被该规则拦截,普通前缀匹配location /永远不会触发。

正确配置示例

# 精准匹配根路由,仅处理站点根路径请求
location = / {
    root /var/location2/;
    try_files $uri /homepage.html =404;
}

# 匹配所有非根路径的请求,用于单页应用路由
location / {
    root /var/location1/;
    try_files $uri $uri/ /index.html =404;
}

规则说明

  • location = /是精准匹配规则,优先级为所有location类型中最高,仅当请求的路径完全为/时才会命中,保证根路由指向/var/location2/homepage.html,请求携带的查询参数不影响该匹配规则。
  • 其余所有非根路径的请求都不会命中精准匹配,会自动匹配到下方的普通前缀匹配location /,无需逐个定义子路由即可覆盖所有子路径,适配单页应用的前端路由需求。
  • 如果你的配置中还有其他正则匹配规则,可将location /修改为location ^~ /,进一步提升该规则的优先级,避免被其他正则规则拦截。

内容的提问来源于stack exchange,提问作者Venomoustoad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 17:09:03