2008년 9월 29일 월요일

IIS 7, URL Rewrite Module (URL 재작성 모듈)

URL Rewrite 모듈은,. 이미 인터넷 상에 매우 많은 종류가 배포되어 사용되고 있습니다. IIS 7 에서는 모듈형태로 URL Rewrite Module 이 제공이 되고 있는데요,. 별도로 다운로드 해서 설치를 해줘야 합니다.



Request Filtering 과 URL Rewrite Module 는, Http 요청이 오면 BeginRequest 이벤트에 의해서 작동이 됩니다.


다운로드:
x86: http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1691
x64: http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1692



IIS7 의 URL Rewrite Module 은 쉽게 URL Rewrite Rule 설정이 가능하도록 UI 를 제공하고 있습니다.

Blank rule 은 직접 모든 항목을 설정하는 것이며,

User friendly URL 은 웹브라우져의 주소창의 URL 을 토대로 몇개의 재작성된 URL 주소 형식 기준의 패턴을 보여 줍니다.

Rule with rewrite map 은 일종의 고정된 템플릿 패턴을 저장후 룰 설정이 호출해서 이용할수 있으며,

Request blocking 은 특정 패턴의 요청을 401, 403, 404, Abort Request 으로 응답을 해줍니다. 일종의 방화벽 역할과 비슷하죠..^^

물론, 기능중에는 Apache 의 mod_rewrite 룰도 가져와서 적용할수 있습니다.




설정된 정보중 전역설정값은 applicationhost.config 에 저장되며, 사이트 단위 설정은 web.config 에 저장됩니다.

<rewrite>
    <globalRules>
 <rule name="Rewrite rule1 for StaticTest">
     <match url=".*" />
     <conditions>
  <add input="{StaticTest:{REQUEST_URI}}" pattern="(.+)" />
     </conditions>
     <action type="Rewrite" url="{C:1}" appendQueryString="false" />
 </rule>
    </globalRules>
    <rewriteMaps>
 <rewriteMap name="StaticTest">
     <add key="/article1" value="/article.aspx?id=1&amp;title=some-tile" />
 </rewriteMap>
    </rewriteMaps>
</rewrite>


위처럼 직접 config 을 수정해서 적용이 가능하지만,. UI 에서의 설정이 훨씬더 편할것 같습니다. URL Rewrite Module 에 대한 상세한 설명은 다음 페이지를 참고해 보시기 바랍니다.

http://learn.iis.net/page.aspx/460/using-url-rewrite-module/

스샷등 매우 상세하게 설명되어 있습니다.^^


29-iis7-request-filtering.png
29-IIS7-URL-Rewrite-Module-1.png
29-IIS7-URL-Rewrite-Module-2.png

댓글 없음:

댓글 쓰기

HttpClient 에서 비동기 호출시 System.Threading.Tasks.Task 오류

client.PostAsync().Result; 하나 이상의 오류가 발생했습니다., 위치: System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification) 이 요청을...