개발/기타

[HTTP] 에러 코드 별 사용자 지정 페이지 표시하는 방법

Hide 2024. 10. 19. 00:13

HTTP 에러 코드에 대해 서버 정보가 노출되지 않도록 사용자가 지정한 페이지를 표시하는 방법

 

HTTP 에러 코드를 반환할때, 서버 정보가 노출되면 안되므로 특정 페이지를 표시하도록 하는 방법이 있다.

해당 방법은 2가지 방법이 있다.


1. Tomcat/conf/server.xml 에서 설정하는 방법
<Valve className="org.apache.catalina.valves.ErrorReportValue" showReport="false" showServerInfo="false" errorCode.401="/error/showerror.html">


2. Tomcat/conf/web.xml 에서 설정하는 방법
<error-page>
  <error-code>401</error-code>
  <location>/error/showerror.html</location>
</error-page>

 

이 중, web.xml 에서 설정한 것이 우선 적용되고, server.xml에서 적용한 것은 후적용된다.

 

주의점

 

만약 설정한 경로의 에러 페이지가 존재하지 않는다면 404 에러가 발생하게 된다.

server.xml, web.xml 옵션이 모두 적용되어 있다면 web.xml 의 설정값이 우선 적용되므로, server.xml에 지정한 페이지가 존재하더라도 web.xml 에 파일이 없다면 무조건 404 에러가 뜬다.

 

만약 401 에러나, 403 에러가 뜬 뒤 페이지를 표시하도록 설정해놓고, 해당 파일이 없다면 404 에러가 나오게 되는 것이다.

 

해당 부분을 주의하여야 한다.

 

원래라면 권한 부족 에러인 403이나, 전달 인자 문제인 401 에러가 나야 하는데, 서버의 어떤 파일에 접근하더라도 파일이 없다는 404에러만 뜰 수 있다.