.htaccess에서 에코하는 방법?


13

우리는 htaccess에 많은 코드를 작성하지만 페이지를 새로 고치는 것 외에 디버깅하는 가장 좋은 방법은 무엇입니까?

파일에 쓸 수있는 방법이 있습니까? 또는 에코 / 인쇄 기능이 있습니까?

내 $ 1 $ 2 $ 3이 무엇인지 어떻게 알 수 있습니까?

답변:


8

블로그 게시물에 언급 된 mod_rewrite를 디버깅하는 몇 가지 방법을 시도해 볼 수 있습니다 .


기본적으로 mod_rewrite가 헤더로 다시 사용하는 일부 정보를 덤프 한 다음 Firefox에서 Firebug 또는 LiveHTTP 헤더 확장을 사용하여 헤더를보고 디버그 정보를 읽으십시오.

htaccess에서 조건과 규칙을 사용하십시오.

RewriteCond %{QUERY_STRING} !vardump
RewriteRule (.*) http://www.example.com/$1?vardump&thereq=%{THE_REQUEST}&reqhost=%{HTTP_HOST} [R=301,L,QSA]

테스트를 마친 후 브라우저에서 캐시 된 301 결과로 인한 문제를 피하기 위해 302 리디렉션을 제안합니다.
IPSUS

9

이것들을보십시오 :

RewriteLog "/myfolder/mylogfile.log" 
RewriteLogLevel 3

이것들은 몇 가지 추가 된 정규 표현식 일 뿐이므로 URL이나 다른 Regex 디버깅 도구에 대한 초기 테스트에 Regex Coach 를 사용할 수 있습니다 .

건배! :)


매우 유용한 도구이지만 대규모 로그 파일을 얻을 수 있으므로 디버깅 후 제거해야합니다!
Coops

6
분명히 이것은 .htaccess파일 에서 작동하지 않습니다 . 이 글은 가야 httpd.conf하는 것이 일반적으로 공유 호스팅 계정에 달성하지 의미합니다. :-(
Simon East

2

다음은 .htaccess 파일에서 변수를 "에코"하는 흥미로운 작은 해킹입니다.

AllowOverride를 FileInfo로 설정 한 경우 출력에서 ​​원하는 변수를 사용하여 .htaccess 파일에서 사용자 정의 오류 응답 을 설정하고 트리거 할 수 있습니다 .

ErrorDocument 404 "Request: %{THE_REQUEST} Referrer: %{HTTP_REFERER} Host: %{HTTP_HOST}"
RewriteRule ^ - [L,R=404]

표현력 이있는 창의성에 따라 유용한 정보를 많이 출력 할 수 있습니다!

"반향 된"컨텐츠에 404 상태를 사용하는 것으로 제한되지 않습니다. <If>지시문 과 결합 된 상태 200 "ErrorDocument"를 재정의 할 수도 있습니다. 지시문 과 결합 하면이 해킹을 다른 흥미로운 용도로 사용하여 .htaccess 파일에서 직접 내용을 반환 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.