Whiteship's Note


WEB-INF/urlrewrite.xml 파일 설정하기

Java : 2010.02.09 18:02


http://tuckey.org/urlrewrite/manual/3.0/

일욜에 보던건데. 이제서야 다시 정리하고 싶어져서;; 쿨럭;;

    <?xml version="1.0" encoding="utf-8"?>

    <!DOCTYPE urlrewrite
        PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN"
        "http://tuckey.org/res/dtds/urlrewrite3.0.dtd">

    <urlrewrite>

        <rule>
           <from>^/some/olddir/(.*)$</from>
           <to type="redirect">/very/newdir/$1</to>
        </rule>

        <rule match-type="wildcard">
           <from>/blog/archive/**</from>
           <to type="redirect">/roller/history/$1</to>
        </rule>

    </urlrewrite>

파일 이름은 urlrewrite.xml로 해야하고 위와 같은 형태로 작성하면 됩니다. urlrewrite 엘리먼트가 반드시 들어있어야 하며, 그 안에는 최소한 한 개의 rule 엘리먼트가 들어있어야 합니다.

rule 엘리먼트 안에는 from과 to가 각각 하나씩 반드시 있어야 하며, condition와 set 엘리먼트는 없거나 여러 개 있어도 됩니다.

rule 안에 정의한 condition이 만족하면 from이 요청 URL에 적용되고 set 엘리먼트가 실행되고 to가 적용 됨.

아래는 수도 코드

    Pattern.compile(<from> element);
    pattern.matcher(each request url);
    matcher.replaceAll(<to> element);
    if ( <condition> elements match && pattern matched ) {
       execute <run> elements (if any)
       perform <to> element (if any)
    }




top


UrlRewriterFilter 옵션

Java : 2010.02.07 20:12


http://tuckey.org/urlrewrite/manual/2.6/

UrlRewriterFilter 설정 파일을 다시 읽어 들일지 확인하는 주기 설정.
0은 계속해서 확인하고, 빈 값 또는 이 속성을 설정하지 않으면 다시 읽어 들일지 확인하지 않음.

    <init-param>
    <param-name>confReloadCheckInterval</param-name>
    <param-value>60</param-value>
    </init-param>

로그 수준을 설정한다.
사용할 수 있는 값: TRACE, DEBUG, INFO, WARN, ERROR, FATAL, log4j, commons, sysout:{level} (ie, sysout:DEBUG)
기본값은 INFO

    <init-param>
    <param-name>logLevel</param-name>
    <param-value>DEBUG</param-value>
    </init-param>

status 페이지(UrlRewriter 설정 페이지 /rewrite-status)를 사용하지 않게 설정할 수 있다.
사용할 수 있는 값: true, false
기본값: true

    <init-param>
    <param-name>statusEnabled</param-name>
    <param-value>true</param-value>
    </init-param>


애플리케이션에서 필요한 경로와 중복되지 않도록 status 페이지 요청을 다른 경로로 변경할 수 있다.
반드시 /로 시작해야 한다.

    <init-param>
            <param-name>statusPath</param-name>
            <param-value>/status</param-value>
    </init-param>


top


UrlRewriterFilter 설치하기

Java : 2010.02.07 17:20


http://tuckey.org/urlrewrite/manual/2.6/

1. 다운로드 또는 메이븐

        <dependency>
            <groupId>org.tuckey</groupId>
            <artifactId>urlrewritefilter</artifactId>
            <version>3.1.0</version>
        </dependency>

2. web.xml에 필터 맵핑 추가하기

    <filter>
        <filter-name>UrlRewriteFilter</filter-name>
        <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>UrlRewriteFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

3. WEB-INF 폴더에 urlrewrite.xml 파일 만들기

4. 애플리케이션 재시작하고 http://127.0.0.1:8080/rewrite-status 확인하기
top


UrlRewriterFilter 소개

Java : 2010.02.07 16:00


http://tuckey.org/urlrewrite/

아파치 mod_rewrite와 같은 기능을 레진, 오리온, 톰캣 같은 J2EE 호환 웹 애플리케이션 서버에서 사용할 수 있도록 해주는 자바 웹 필터이다.

URL 재작성은 아파치 웹 서버에서 매우 흔히 사용하지만 자바 웹 애플리케이션 서버에서는 이용할 수 없었다.  이것을 사용하여 할 수 있는 주요 작업들은 다음과 같다.

- URL 간편화 / URL 추상화: URL을 간단하게 구성할 수 있고 애플리케이션의 기반 프레임워크 기술을 가릴 수 있다.
- 브라우저 감지: HTTP 헤더를 기반으로 URL을 재작성 할 수 있다.
- 날짜 기반 재작성: 날짜/시간을 기반으로 다른 URL로 포워딩 또는 리다이렉트 할 수 있다.
- 이동된 컨텐츠: 컨텐츠 이동을 편리하게 할 수 있다.
- 짧고/친화적인 URL(예, blah.com/latest 를 blah.com/download/ver1.2.46.2/setup.exe로 리다이렉트 시킬 수 있다.)
- 서블릿 매핑 엔진(Method Invocation 참조)

WEB-INF 디렉토리에 있는 urlrewrite.xml 이라는 xml 파일 한 개를 사용하여 설정한다.

대부분의 매개변수는 Perl5 스타일 정규 표현식 또는 와일드카드 표현식을 사용할 수 있다. 이 점이 매우 유용하다.




top