我正在单独的文件夹中运行多个 SPA,以及一些静态文件。结构如下:
|
|- index.html
|- foobar.html
|---- SPA1/
| |- index.html
| |---- SPA1_1/
| |- index.html
|---- SPA2/
|- index.html
预期行为是:
/SPA1/SPA1_1/foo/bar
为所有人服务SPA1/SPA1_1/index.html
SPAx/foo/bar
为所有人服务SPAx/index.html
- 搭配
/not_exist
/index.html
- 搭配
/foobar.html
/foobar.html
简而言之,我希望 nginx 按顺序尝试以下路径:
$uri
$uri
最亲近的父母
有没有办法可以在不为每个 SPA 目录指定规则的情况下实现这一点?
答案1
您可以通过每次删除目录路径来递归重写 URI,直到index.html
找到文件为止。这将是一个内部循环,不会发生任何外部重定向。
例如:
location / {
try_files $uri $uri/index.html @rewrite;
}
location @rewrite {
rewrite ^(.*)/.+ $1/ last;
}