我有一个看起来像这样的configuration中的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;
但尝试访问/route_a时得到了404。
我尝试在服务器块内的location和alias :
location ~ ^ { alias $route; }
哪些工作,但服务我的内容作为application/octet-stream 。
什么是正确的方法来做到这一点?
我的约束是,URIpath到文件必须在地图块内定义。
你应该检查你的错误日志,看看实际发生了什么。 这个configuration适用于我:
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”指令设置正确的path?