[nginx]代理404跳转
1.nginx作为反向代理,如果代理请求的页面不存在,返回404,但是浏览器中一片空白。
要求:将404跳转到指定页面。
在server段添加:
error_page 404 /;
不能生效,原因是需要添加一条proxy_intercept_errors on;语句。
同理对于动态页面的404响应,需要添加fastcgi_intercept_errors on;语句。
2.error_page语法
error_page code ... [ = [ response ]] uri
例如以下:
error_page 404 /404.html; error_page 502 503 504 /50x.html; error_page 403 http://example.com/forbidden.html; error_page 404 = @fetch;
还可以修改状态码:
error_page 404 =200 /empty.gif; error_page 404 =403 /forbidden.gif;
还可以不指定状态码,直接使用指定error handler的返回状态作为状态码。
error_page 404 = /404.php;
还可以跳转到特定的location处理错误页面
location / ( error_page 404 @fallback; ) location @fallback ( proxy_pass http://backend; )
参考:
http://wiki.nginx.org/HttpCoreModule#error_page