У меня есть nginx карта внутри конфигурации, которая выглядит так:
map $uri $route {
/route_a /path/to/a.html;
/route_b /path/to/b.html;
}
server {
listen 8080;
server_name example.dev;
}
Я попытался rewrite
внутри серверного блока:
rewrite ^ $route break;
Но получил 404 при попытке доступа /route_a
.
Я попытался location
и alias
внутри серверного блока:
location ~ ^ {
alias $route;
}
Что сработало, но служило моему контенту как application/octet-stream
.
Как правильно это сделать?
Мое ограничение состоит в том, что пути URI к файлам должны быть определены внутри map
блок.
Вы должны проверить свой журнал ошибок, чтобы увидеть, что на самом деле происходит. У меня работает такая конфигурация:
map $uri $route {
/route_a /path/to/a.html;
/route_b /path/to/b.html;
}
server {
root /;
listen 8080;
server_name localhost;
location / {
rewrite ^ $route break;
}
}
Конечно, должен существовать /path/to/ inventory.html.
Может, вы просто забыли указать правильный путь с помощью директивы "root"?