웹서버 운영중에 http 403, 404, 500(은 ..-_-) 등의 오류가 발생하면 기본 오류 메시지가 출력된다. 이러한 오류 페이지도 사이트의 일부라고 생각하여 전체 사이트의 디자인에 맞춰서 새롭게 만드는 경우는 흔하다. 보안상의 문제로 새로 만들기도 한다. 오류코드와 경로 등의 노출을 막기 위함이다.
아파치를 사용하고 있다면 httpd.conf의 하단에 아래와 같이 기본값이 정의되어 있다.
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html
특정 오류에 대한 짧은 메시지 출력을 원한다면 " " 사이에 메시지를 넣어주면 된다. 첫 번째 줄이 좋은 예다. 세 번째 줄과 같이 " " 안에 실행할 스크립트 파일의 경로를 지정하는 방법도 있나보다(안해봤다). 네 번째 줄과 같이 웹상에 해당 오류에 대한 안내 페이지를 만들어 두고 url을 지정하여 보여주는 방법도 있다. 즉, 사이트에 별도의 오류안내 페이지를 만들어 두고 이를 보여주는 것이다.(html 링크를 걸어두는 듯한...) 두 번째 줄과 같이 미리 문서를 만들어 놓고 경로를 지정하여 보여줄 수도 있다. 이 방법은 하나의 서버에서 사이트를 하나만 운영하는 것이 아니라면 각각의 가상호스트 설정 파일에서 별도로 지정해주어야 한다. 아래와 같다.
ServerName mydomain.kr
DocumentRoot /home/myaccount/mydomain.kr/public_html
ErrorLog ~
CustomLog ~
ErrorDocument 403 "/error/er403.html"
ErrorDocument 404 "/error/er404.html"
위의 예에서 HTTP 404 ERROR가 발생하게되면 /home/myaccount/mydomain.kr/public_html/error/er404.html이 웹브라우저에 출력된다. httpd.conf와 vhost 모두 동일한 오류에 대해서 설정해 두었다면 최종설정은 vhost의 설정에 따른다.
참고
2021.06.07 - [Linux/Web Server] - apache - HTTP 30x [URL Redirection]
'Linux > Web Server' 카테고리의 다른 글
[CentOS8] httpd[proxy_fcgi:error] [pid 31nn:tid 14nn] ~ AH01071: Got error 'Primary script unknown' (0) | 2020.12.13 |
---|---|
apache[httpd] 웹서버의 기본포트[80] 변경하기 (0) | 2020.07.27 |
[CentOS 7.x] 구버전 apache(httpd-2.2.34) 설치 및 가상호스트 설정 (0) | 2020.04.23 |
apache의 (internal dummy connection) 로그 (0) | 2020.02.23 |
URL이 아닌 ip주소로 사이트가 열리는 것을 막고 싶다면... (5) | 2020.02.16 |
댓글