2011-11-30 3 views
0

mod_Rewrite를 사용할 때 "실제"요청 된 URL을 얻는 방법을 알고 싶습니다. htaccess-file에는 캐시 용으로 몇 가지 다시 쓰기 규칙이 있습니다. 먼저 캐시 파일이 존재하는지 확인합니다. 그렇다면 요청은 캐시 파일로 다시 작성됩니다. 그렇지 않으면 요청은이 캐시 파일을 생성하는 PHP 스크립트로 다시 작성됩니다.mod_rewrite를 사용할 때 실제 요청을 얻는 방법

하지만 규칙이 내가 원하는 것처럼 일치하지 않는다고 생각합니다. "진짜"요청을 추적 할 가능성이 있습니까? 클라이언트가 요청한 URL과 백그라운드에서 요청 된 파일은 무엇입니까?

미리 감사드립니다.

+0

그냥 안개가 자욱한 기억 ... 나중에 mod_rewrite를 사용하여 변수를 설정할 수 있다고 생각합니다. 또는 원래 요청을 나타내는 내장 변수가 있습니다. 죄송합니다. 명확하게 기억할 수는 없지만 설명서를 읽으시기 바랍니다. (오랫동안 잘 읽었지 만 도움이됩니다.) – gahooa

답변

0

%{THE_REQUEST} 특수 변수가 필요할 수 있습니다. mod_rewrite docs이 말 :

서버에 브라우저에 의해 전송 된 전체 HTTP 요청 라인 (예를 들어, "GET /index.html이 HTTP/1.1"). 여기에는 브라우저에서 보낸 추가 헤더가 포함되지 않습니다. 이 값은 아래의 대부분의 다른 변수와 달리 이스케이프 처리 (디코딩)되지 않았습니다. 누군가가 자신의 브라우저에 http://your-domain/path/file.html를 입력하고 웹 서버는 완전히 다른 무언가로 /path/file.html를 다시 작성하는 경우

그래서, % {THE_REQUEST} 변수는 여전히 GET /path/file.html HTTP/1.1, 또는 비슷한 것입니다.

요청이 마지막에 다시있어 무엇에 관해서는

, 당신은 무엇을보고 재 작성에 대한 로깅을 설정할 수 있습니다 :

RewriteLog /some-path/rewrite.log 
    RewriteLogLevel 9 

이 가상 호스트 설정에 갈 것이라고 및 디버깅 목적으로 만 사용. rewrite.log 파일에는 다시 쓰기 프로세스에 대한 세부 정보와 최종 URI 정보가 포함됩니다.

+0

RewriteLog는 좋게 들리지만 아는 한 .htaccess를 통해 실행되도록 할 수는 없습니다. Unfortunatley 나는 httpd.conf 나 다른 설정 파일에 접근 할 수 없다. – Phil

관련 문제