我在我的nginx.conf中配置了一个反向代理,它运行得很好。
location /foo/ {
proxy_pass http://localhost:5000/;
proxy_intercept_errors on;
proxy_redirect off;
}
我也处理错误请求:
location @404 {
#redirect to http://localhost:5000/foo/index.html
return 302 /foo/index.html;
}
error_page 404 = @404;
如您所见,我使用302重定向到index.html。到目前为止也很完美。
但我想要的不是重定向。我想将索引页面转发到浏览器。
(我需要转发的原因是我想在启用html5mode并删除angularjs应用程序中的#
时处理刷新问题。)
有没有办法做到这一点?
答案 0 :(得分:1)
您的指定位置正在强制重定向。 error_page
处理不需要重定向。您可以在error_page
语句中指定由代理位置处理的本地URI:
例如:
location /foo/ {
proxy_pass http://localhost:5000/;
proxy_intercept_errors on;
proxy_redirect off;
}
error_page 404 = /foo/index.html;
有关详情,请参阅revised fiddle。