apache rewrite_module 로그

버전) apache 2.2
주의) apache 2.2와 2.4는 설정이 좀 다릅니다. 아래 내용은 2.2에서 테스트하였습니다.
참고) http://httpd.apache.org/docs/2.2/ko/mod/mod_rewrite.html
참고2) 2.4는 http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html 를 참조하세요.

아파치 rewrite_module 에 대해서는 검색해보면 많습니다. 하지만 RewriteCond 및 RewriteRule 설정이 복잡하거나 이상해서 원하는데로 동작안하는 경우가 있습니다. 이럴때는 그냥 아무 생각없이 설정을 만지작거려 보다가 "어라?!?!" .......다시 아파치 매뉴얼을 읽어봅니다. 그리고 다시 설정을 만지작거리다가 운 좋으면 가끔 될 때도 있지만 아마도 1년 중에 360일은 운이 없는 날인듯 합니다.ㅋㅋ 간혹 되더라도 원하는데로 동작하게 했다는 것 이외에는 큰 의미가 없습니다. 나중에 또 삽질이 반복될테니까요.

암튼 우리같은 사람은 뭐가 잘 안될 때 증상을 파악해야 합니다. 바로 로깅이죠. 근데 rewrite_module의 로그를 남기는 방법에 대한 설명은 영문 매뉴얼 이외에는 잘 없어서 간단한 예제 하나 올립니다. (야간 서버 작업 중인데 기다리는 시간이 너무 지루합니다.^^ 롤백 어쩌고 저쩌고 하는거 보니 뭐가 잘 안되나 보네요. DB는 정말 어렵습니다. 엉엉)


<IfModule rewrite_module>
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/notice.html -f
RewriteRule .* /notice.html
RewriteLog logs/rewrite.log
RewriteLogLevel 4
</IfModule>

빨간색으로 표시된 부분이 바로 rewrite 로그 남기는 설정입니다. 로그 레벨은 0부터 9까지 사용할 수 있는데 숫자가 클수록 자세하게 남깁니다. 실제 서비스 중인 서버에는 0으로 셋팅하는게 좋습니다. (디폴트값이 0입니다.) 4로 설정하니까 

(4) RewriteCond: input='/opt/local/apache2/htdocs/notice.html' pattern='-f' => matched

이정도 수준의 로그까지 나오는군요. 일단 2.2버전에 대한 설명은 요기까지구요.

apache 2.4 문서를 보니까 RewriteLog와 RewriteLogLevel을 사용하지 말라고 하는군요. 대신 아래처럼 설정하랍니다.

LogLevel alert rewrite:trace3

httpd.conf 에서 LogLevel을 찾아서 수정하면 될듯 하네요. 저는 안해봤습니다. 저거 테스트하자고 아파치 설치하기도 귀찮구요..ㅋㅋ

댓글

이 블로그의 인기 게시물

미적분과 차원

자바 로깅