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