2007년 9월 5일 수요일

[Apache]mod_rewrite 소개

아파치 모듈 - mod_rewrite

설명 : 요청된 URL을 규정에 따라 재작성 하는 엔진을 제공한다.
상태 : 확장가능(?)
모듈 구분명 : rewrite_module
소스 파일 : mod_rewrite.c
이용가능 버전 : 아파치 1.3 이상버전에서 사용가능

요약 : 이 모듈은 정규표현식에 기반을 두는 규정에 따라 요청된 URL을 재작성하는 엔진을 사용합니다. 이 모듈은 유연하고 강력한 URL처리를 위하여 무한정의 규정과 그 규정의 무한정의 하부 요소들을 지원합니다. URL 처리기는 서버변수, 환경변수, HTTP 헤더, 타임스탬프를 불러올 수 있습니다. 심지어 다양한 포맷으로 구성된 외부 데이터베이스 색인까지도 URL을 더욱 효과적으로 대조하기 위하여 사용될 수 있습니다.
이 모듈은 서버단위의 설정과(httpd.conf) 디렉토리 단위의 설정(.htaccess)을 기반으로 서버의 상대주소(적당한 표현이 기억이 안나네요?)를 포함한 전체 URL을 조작합니다(또한 쿼리부분까지 만들 수 있습니다). 이 재작성된 결과는 내부적인 서브프로세싱을 하거나, 외부적인 리퀘스트 리디렉션을 하도록, 혹은 내부 프록시에 다다를 수 있게 합니다.



특수문자 인용하기
아파치 1.3.20버젼부터, 입력되는 문자열과 치환될 문자열내의 특수문자들은 앞에 슬래시('\') 문자를 붙임으로서 이스케이프(평소 쓰이던 특수한 의미대신 일반적인 '기호'의 의미로 쓰이는것) 될 수 있습니다. 예를들자면, 달러문자를($) 치환될 문자열 내에서 '\$'라고 씀으로서 일반적인 기호로서 사용할 수 있습니다. 이것은 mod_rewrite가 달러문자를 "문장의 맨 끝"으로 인식하지 않고, 일반적인 달러 표기로 인식하게 해줍니다.


환경변수들
mod_rewrite 모듈은 끊임없이 SCRIPT_URL과 SCRIPT_URI라는 (표준이 아닌)두개의 CGI/SSI의 환경변수를 불러옵니다. 이 변수들은 논리적인 웹상에서의 현재 리소스의 경로를 나타냅니다.(반면에, SCRIPT_NAME 과 SCRIPT_FILENAME라는 (표준인)두개의 CGI/SSI의 환경변수는 실제적인 시스템상에서의 리소스의 경로를 나타냅니다)

알아두기 : 원래, '재작성'이라는 과정은 논리적인 URL을 실제적인 시스템상에서의 리소스의 경로로 교환하는 과정을 의미합니다.

예제 :
SCRIPT_NAME=/sw/lib/w3s/tree/global/u/rse/.www/index.html
SCRIPT_FILENAME=/u/rse/.www/index.html
SCRIPT_URL=/u/rse/
SCRIPT_URI=http://en1.engelschall.com/u/rse/







원문 : http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html


==================
아파치의 mod_rewrite에 대해서 자세하게 알고 싶어서 이제부터 조금씩 번역을 시작할 계획입니다.(제발 중간에 그만두는 일은 없어야 하는데..)

댓글 없음: