2006/02/26

URL Rewrite Filter for IIS (ISAPI Filter)

URL Rewrite 는 IIS 웹서버에 요청된 웹페이지 특정 주소 형식에 대해서, 지정된 웹페이지 내용을 출력해 주는 ISAPI 필터 입니다.

IIS6 에서는 ISAPI 필터가 아니더라도, .NET의 HttpHandler 를 통해서 어느정도 효과를 보실수 있습니다.

"ASP.NET HTTP 모듈 및 HTTP 처리기 개요" kb 문서를 참고해 보세요.


Mod_Rewrite 의 설치 방법은 아주 간단합니다.

http://www.iismods.com/ 의 다운로드 페이지에서 다운로드후 압축을 풀면 다음과 같습니다.

- The IIS ISAPI filter (Mod_Rewrite.dll)
- The config file (mod_rewrite.ini)
- This Documentation (document.htm)
- The test file mod_rewrite.htm.



적용코자하는 웹사이트의 IIS 등록정보에서 ISAPI 부분에 필터를 등록해 줍니다. ISAPI 모듈이 올라올려면 IIS를 재시작 해야 합니다.

mod_rewrite.ini 의 기본 포맷은 다음과 같습니다.

(RewriteRule)(SPACE)(RegularExpression to match Input URL)(SPACE)(Output URL Expression)(SPACE)([options])


예제 몇가지를 보면, 아주 요긴한 기능을 제공합니다.

RewriteRule ^/product/(.*).htm /product.asp?id=$1

/product/ 디렉토리의 *.htm 파일을 요청할 경우 /product.asp?id= 에 $1 값의 asp 페이지를 출력해 준다는 예제입니다.


RewriteCond HTTP_HOST (.*)\.yourdomain\.com
RewriteRule (.*) /default.asp?site=$C&loc=$1

이 경우는 aaa.serverinfo.pe.kr 을 요청한 경우 /default.asp?site=$C&loc=$1 의 페이지를 출력. 회원마다 회원id 형태의 서브도메인 형태의 웹사이트 운영이 필요한 경우 아주 요긴할것 같습니다.


RewriteCond HTTP_REFERER theirsite.com [OR]
RewriteCond HTTP_REFERER thersite1.com 
RewriteRule .zip /denied.htm

이 경우는, 일반 파일이나, 이미지 파일등을 직접 다운로드를 막는 설정입니다. zip 압축파일을 다운로드 요청할 경우 denided.htm 를 클라이언트에 출력합니다. 경고문구 내용이 있으면 좋겠죠..


좀더 확장된 예제는 다음 페이지를 참고해 보시기 바랍니다.
http://www.iismods.com/url-rewrite/examples.htm


댓글 없음:

댓글 쓰기

가장 많이 본 글