Apache mod_rewrite를 디버깅하는 방법
mod_rewrite에는 두 가지 주요 문제가 있습니다.
1) 잘못된 규칙이있을 때 의미있는 오류가보고되지 않습니다
2) 각 수정 사항을 안정적으로 테스트하려면 크롬 캐시를 삭제해야합니다. 이것은 로켓 과학이 아니지만 Ctrl + Shift + Delete를 누르고 확인을 클릭 한 다음 창을 닫고 다시로드해야합니다.
나는 어떤 전문가가 mod_rewrite 코드를 효율적으로 관리하기 위해 자신의 비밀을 기꺼이 공유하고 있는지 확인하고 싶습니다.
한 가지 트릭은 다시 쓰기 로그를 설정하는 것입니다. 켜려면 아파치 기본 설정 또는 현재 가상 호스트 파일 (이 아닌) 에서 다음 줄을 시도하십시오 .htaccess
.
RewriteEngine On
RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 3
Apache httpd 2.4 부터 mod_rewrite RewriteLog 및 RewriteLogLevel 지시문은 새로운 모듈 별 로깅 구성으로 완전히 대체되었습니다.
LogLevel alert rewrite:trace6
Ben에서 언급 한 LogRewrite 지시문은 Apache 2.4에서 더 이상 사용할 수 없습니다. 대신 LogLevel 지시문을 사용해야합니다. 예 :
LogLevel alert rewrite:trace6
http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging을 참조하십시오 .
기본 URL 확인을 위해 수동 브라우저 대신 명령 줄 페처를 사용 wget
하거나 curl
테스트를 수행하십시오. 그런 다음 캐시를 지울 필요가 없습니다. 테스트 페치를 다시 실행하려면 위쪽 화살표와 셸을 입력하십시오.
있다 htaccess로 테스터 .
특정 URL에 대해 테스트 된 조건, 조건을 충족하는 규칙 및 실행 된 규칙을 보여줍니다.
그래도 약간의 결함이있는 것 같습니다.
를 기반으로 벤의 대답 (내 경우에는 데비안) 리눅스에 아파치를 실행하는 경우에는 다음을 수행 할 수 있습니다.
먼저 rewrite-log.load 파일을 작성하십시오.
/etc/apache2/mods-availabe/rewrite-log.load
RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 3
그런 다음 입력
$ a2enmod 다시 쓰기-로그
뒤에
$ 서비스 아파치 2 재시작
다시 쓰기 규칙 디버깅을 마치면
$ a2dismod 재 작성 로그 및 서비스 apache2 restart
참고 URL : https://stackoverflow.com/questions/9632852/how-to-debug-apache-mod-rewrite
'Programing' 카테고리의 다른 글
파이썬 디버깅 팁 (0) | 2020.05.30 |
---|---|
스타일 시트에서 IE (모든 버전) 만 타겟팅하는 방법은 무엇입니까? (0) | 2020.05.30 |
정수를 해당 문자로 변환하십시오. 여기서 0 => a, 1 => b 등 (0) | 2020.05.30 |
SSMS에서 ntext 또는 nvarchar (max)의 모든 텍스트를 어떻게 봅니까? (0) | 2020.05.30 |
Java Stanford NLP : 음성 레이블의 일부? (0) | 2020.05.30 |