七种error_page用法的区别

1、error_page status_code /xx/xx.html

如果触发错误状态码,则请求/xx/xx.html,如果请求成功,则最终状态码以第一次的状态码为准;如果请求/xx/xx.html出现了错误状态码,比如404和5xx,那么以后面返回的状态码为准。

2、error_page status_code = /xx/xx.html

如果中间是=号。那么请求不论是还还是成功,都是以最后一个状态码为准。

3、error_page status_code = @static

location @static {
    rewrite ^ /res/fb.html;
}

和第二种结论一致。

4、error_page xxx =200 /xx/xx.html

不论前后端如何,都返回200

5、error_page xxx =code http://xxx

如果xxx后面没有=指定状态码,则都返回302
注意后面是http://xxxx

6、error_page xxx =code @fb

location @fb{
    rewrite ^ /dist/modules/main/manifest.c759b8f1.js break;
}

这种情况,如果指定了状态码,那么rewrite后得到的状态码就是指定了的code。

7、error_page xxx =code @fb;

location @fb{
    rewrite ^ http://xxxx.xxx.com;
}

如果是rewrite给了http或者https,则定义的状态码无效,强制为302。