Nginx 模式匹配部分路径

Nginx 模式匹配部分路径

以下是我想要实现的目标:

  1. 所有请求/api/...都应定向到反向代理
  2. 所有请求都应/static/.../html/static/pub
  3. 所有其他请求应从/html/app/pubOR 回退到/html/app/pub/index.html

/html目前无法更改文件夹结构。

以下是我的位置块当前的样子:

root /html/app/pub/;

location /api/ {
  # proxy details...
}

location ~* /static/(.*) {
  try_files /html/static/pub/$1 =404;
}

location / {
  try_files $uri /index.html;
}

使用此设置,可以满足要求 (1) 和 (3),但不能满足 (2)。对其中任何路径发出的任何请求/static都会返回 HTTP 404。nginx 日志中没有错误,请求只是记录为未找到。

我尝试过许多不同的排列组合,每一种组合都至少违反了一项要求;这是我找到的最接近我想要的结果。我搜索了所有我能在谷歌上搜索到的文章(其中 90% 使用了完全相同的示例片段),但我找不到解决方案。

提前致谢。

答案1

解决了:

location ~* /static/(.*) {
  root /html/static/pub/;
  try_files /$1 =404;
}

相关内容