我有一个 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
块内定义。
答案1
您应该检查错误日志以查看实际发生的情况。此配置对我有用:
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/[ab].html必须存在。
也许您只是忘记使用“root”指令设置正确的路径?