Я запускаю несколько 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?
Вы можете рекурсивно переписать URI, каждый раз удаляя путь к каталогу, пока index.html
файл находится. Это будет внутренний цикл, и никакого внешнего перенаправления не будет.
Например:
location / {
try_files $uri $uri/index.html @rewrite;
}
location @rewrite {
rewrite ^(.*)/.+ $1/ last;
}