안규 공부방

Windows Server > URL Rewrite 를 이용한 짧은 주소 사용하기

등록일 : 2017-06-30 14:02 조회수 : 86,081

우리에게 잘 알려진 XpressEngine, Textyle, Textcube 등 많은 웹 어플리케이션들이 Rewrite 동작에 기반한 Fancy URL 을 제공하고 있으며 IIS 에서도 URL Rewrite 모듈을 사용하여 국내 오픈소스 어플리케이션에서 제공하는 Rewrite 규칙을 그대로 이용 가능합니다.
이번 포스팅에서는 URL Rewrite 기능과 관련하여 아래 3가지 규칙을 생성하여 테스트 해 보도록 하겠습니다.
URL Rewrite 규칙 생성
URL Redirect 규칙 생성
Access Block 규칙 생성

1. URL Rewrite 규칙 생성
첫 번째, URL Rewrite 규칙을 생성하는 방법입니다.
아래 예제를 통해 간단히 URL Rewrite 규칙을 생성하도록 하겠습니다.
[Fancy URL]
http://localhost/article/555/some-article-title
[Rewrite URL]
http://localhost/article.php?id=555&title=some-article-title

위와 같이 Fancy URL 은 사람이나 검색 엔진에는 친화적이지만 어플리케이션을 처리하기 위한 요청으로는 적합하지 않기 때문에 아래에 있는 URL 와 같이 URL Rewrite 를 통해 Rewrite 해야 할 필요가 있습니다.

1. URL Rewrite 규칙 생성
    가. IIS 관리자에서 PHP Site 의 기능에서 URL Rewrite 실행 - Add Rule(s)



    나. Inbound rules - Blank rule 선택



    다. Name, Pattern, Action 을 정의하고 우측 '작업' 영역에서 '적용' 버튼을 클릭하면 저장됩니다.



1) Name : 규칙의 이름
2) Pattern : ^article/([0-9]+)/([_0-9a-z-]+)
    가) 문자열의 시작이 "article/" 로 시작
    나) 하나 이상의 숫자가 "/" 뒤에 나타남
    다) 하나 이상의 "_", "-", 알파벳 문자열이 두 번째 "/" 이후에 존재함
    즉, 위와 같은 패턴이 확인되면 아래 Action Rewrite URL 규칙이 동작하게 됩니다.
3) Action : article.php?id={R:1}&title={R:2}
    가) {R:0} : article/555/some-article-title
    나) {R:1} : 555 다) {R:2} : some-article-title
    즉, R:1 에 Rewrite 된 패턴의 첫 번째 값, R:2 에 두 번째 값이 규칙에 의해 할당됩니다.



1) Name : 규칙의 이름
2) Pattern : ^article/([0-9]+)/([_0-9a-z-]+)
    가) 문자열의 시작이 "article/" 로 시작
    나) 하나 이상의 숫자가 "/" 뒤에 나타남
    다) 하나 이상의 "_", "-", 알파벳 문자열이 두 번째 "/" 이후에 존재함
    즉, 위와 같은 패턴이 확인되면 아래 Action Rewrite URL 규칙이 동작하게 됩니다.
3) Action : article.php?id={R:1}&title={R:2}
    가) {R:0} : article/555/some-article-title
    나) {R:1} : 555 다) {R:2} : some-article-title
    즉, R:1 에 Rewrite 된 패턴의 첫 번째 값, R:2 에 두 번째 값이 규칙에 의해 할당됩니다.

2. 실행 결과

http://localhost/article/555/some-article-title URL 에 접속해 보면 Fancy URL 이 위에서 생성했던 규칙대로 Rewrite 처리 되었음을 확인할 수 있습니다.



2. URL Redirect

[원본 URL]
http://localhost/blog/some-other-title/777
[Redirect URL] http://localhost/article/777/some-other-title



2. URL Redirect

[원본 URL]
http://localhost/blog/some-other-title/777
[Redirect URL] http://localhost/article/777/some-other-title

1. Redirect 규칙 생성

    가. IIS 관리자에서 PHP Site 의 기능에서 URL Rewrite 실행 - Add Rule(s) - Inbound rules - Blank rule 선택
    나. Name, Pattern, Action Type, Redirect URL, Redirect type



    1) Name : Redirect from Blog
    2) Pattern : ^blog/([_0-9a-z-]+)/([0-9]+)
    3) Action type : Redirect
    4) Redirect URL : article/{R:2}/{R:1}
    5) Redirect type : Temporary (307)



    1) Name : Redirect from Blog
    2) Pattern : ^blog/([_0-9a-z-]+)/([0-9]+)
    3) Action type : Redirect
    4) Redirect URL : article/{R:2}/{R:1}
    5) Redirect type : Temporary (307)

2. 실행 결과

인터넷 익스플로러 실행 후 http://localhost/blog/some-other-title/777 URL 을 입력하면 http://localhost/article/777/some-other-title URL 로 Redirect 됨을 확인할 수 있습니다.
 
※ 혹시 도움이 되셨다면 댓글에 한마디 남겨주세요!
작성자   비밀번호
자동글 방지     (자동글 방지 기능입니다.)
내용   댓글달기 
이메일 문의 : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.