如何配置 nginx 以将所有 URL(不以 /api
或一些静态资源(例如 JS/图像)前缀)重定向到 index.html
?原因是我在单页应用程序中使用 HTML5 推送状态 URL。意思是根据 URL 改变内容是 AJAX 还是 JS
我当前的 nginx 配置如下所示:
server {
listen 2000;
server_name localhost;
location / {
root /labs/Projects/Nodebook/public;
index index.html;
}
location /api/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:3000/;
proxy_redirect off;
}
}
原文由 Jiew Meng 发布,翻译遵循 CC BY-SA 4.0 许可协议
这将检查请求的文件是否存在并返回它。如果该文件不存在,它将返回 index.html。
http://nginx.org/en/docs/http/ngx_http_core_module.html#try_files