对于HTTP 4XX,5XX的出错页面,通常会有以下几种处理方法:
1. Apache ErrorDocument
2. Nginx error_page
3. web.xml error-page
4. 应用框架(webx3,Struts)
问题:
这段时间应用的apache升级为nginx,发现了一个问题,apache和nginx处理出错页面稍有不同。
Apache: 在ErrorDocument配置404A.html,并同时在web.xml的error-page中配置404B.html。访问应用不存在页面,会显示404B.html
Nginx: 但是在nginx中,出错页面不会显示web.xml中的配置而直接显示nginx配置的出错页面。
原因:
经过网上查找了相关资料,发现有可能是下面两个配置开启的原因。
proxy_intercept_errors on;
fastcgi_intercept_errors on;
咨询大牛后,了解,注释这两行即可。经试验确实如此。
后续:
这两个指令效果的区别:如果你和后端是proxy方式,那设置了fastcig没用。反之也是。