Share via


사용자에게 친숙한 URL - 규칙 템플릿

작성자: IIS 팀

규칙 템플릿은 특정 시나리오에 대해 하나 이상의 다시 쓰기 규칙을 만드는 간단한 방법을 제공하는 데 사용됩니다. URL 재작성 모듈에는 몇 가지 일반적인 사용 시나리오에 대한 몇 가지 규칙 템플릿이 포함되어 있습니다. 해당 URL 재작성 모듈 UI 외에도 사용자 지정 규칙 템플릿을 연결하기 위한 프레임워크를 제공합니다. 이 연습에서는 URL 다시 쓰기 모듈에 포함된 "사용자 친화적인 URL" 규칙 템플릿을 사용하는 방법을 안내합니다.

사전 요구 사항

이 연습을 수행하려면 다음 필수 구성 요소가 필요합니다.

  1. ASP.NET 역할 서비스를 사용하도록 설정된 IIS 7.0 이상;
  2. URL 다시 쓰기 모듈 2.0 릴리스가 설치되었습니다.

테스트 웹 페이지 설정

간단한 테스트 asp.net 페이지를 사용하여 템플릿에서 만든 규칙이 올바르게 작동하는지 확인합니다. 테스트 페이지는 단순히 웹 서버 변수를 읽고 브라우저에서 해당 값을 출력합니다.

다음 ASP.NET 코드를 복사하여 article.aspx라는 파일의 폴더에 넣 %SystemDrive%\inetpub\wwwroot\ 습니다.

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>URL Rewrite Module Test</title>
</head>
<body>
    <h1>URL Rewrite Module Test Page</h1>
        <table>
            <tr>
                <th>Server Variable</th>
                <th>Value</th>
            </tr>
            <tr>
                <td>Original URL: </td>
                <td><%= Request.ServerVariables["HTTP_X_ORIGINAL_URL"] %></td>
            </tr>
            <tr>
                <td>Final URL: </td>
                <td><%= Request.ServerVariables["SCRIPT_NAME"] %>?<%= Request.ServerVariables["QUERY_STRING"] %></td>
            </tr>
            <tr>
                <td>Public Link: </td>
                <td><a href="<%= Request.ServerVariables["SCRIPT_NAME"] %>?<%= Request.ServerVariables["QUERY_STRING"] %>">Link URL</a></td>
            </tr>
        </table>
    </body>
</html>

이 파일을 복사한 후 브라우저에서 http://localhost/article.aspx 페이지가 올바르게 렌더링되었는지 찾아보고 검사.
U RL 다시 쓰기 모듈 테스트 페이지를 표시하는 브라우저 화면의 스크린샷

규칙 템플릿을 사용하여 다시 쓰기 규칙 생성

"사용자 친화적인 URL" 규칙 템플릿을 사용하여 동적 웹 애플리케이션의 URL을 사용자 및 검색 엔진에 더 친숙하게 만드는 재작성, 리디렉션 및 아웃바운드 규칙을 생성할 수 있습니다. 일반적으로 동적 웹 페이지는 출력 HTML을 생성할 때 쿼리 문자열 매개 변수를 고려합니다. 쿼리 문자열이 있는 URL(예: http://contoso.com/articles.aspx?year=2008&month=11)은 사용자가 간단한 계층 구조 기반 URL(예: http://contolso.com/articles/2008/11)을 사용하고 통신하는 것만큼 쉽지 않습니다. 또한 일부 검색 엔진 크롤러가 웹 사이트 페이지를 인덱싱할 때 쿼리 문자열을 무시할 수 있습니다. 규칙 템플릿을 사용하면 계층 구조 기반 URL을 쿼리 문자열이 있는 URL로 변환하는 다시 쓰기 규칙을 생성할 수 있습니다. 템플릿은 필요에 따라 쿼리 문자열이 있는 웹 클라이언트 양식 URL을 클린 URL로 리디렉션하는 데 사용할 수 있는 리디렉션 규칙을 생성할 수도 있습니다. 마지막으로, URL의 모든 발생을 HTML 응답의 쿼리 문자열로 계층 구조 기반 URL 등가물로 대체하는 아웃바운드 다시 쓰기 규칙을 만들 수 있습니다.

템플릿을 사용하려면 다음 단계를 수행합니다.

  1. IIS 관리자로 이동
  2. "기본 웹 사이트" 선택
  3. 기능 보기에서 "URL 다시 쓰기"를 클릭합니다.
    기본 웹 사이트 화면의 I S Manager 창 스크린샷 U RL 다시 쓰기 아이콘이 강조 표시되어 있습니다.
  4. 오른쪽의 "작업" 창에서 "규칙 추가..."를 클릭하고 "사용자 친화적인 URL" 템플릿을 선택합니다.
    규칙 추가 대화 상자의 스크린샷 사용자에게 친숙한 U R L 아이콘이 강조 표시되어 있습니다.
  5. "사용자에게 친숙한 URL을 사용하도록 설정하는 규칙 추가" 대화 상자에서 쿼리 문자열 매개 변수 http://localhost/article.aspx?id=123&title=some-title 가 있는 URL의 예를 입력한 다음, 쿼리 문자열 없이 해당 예제 URL을 URL로 변환할 수 있는 방법에 대한 제안된 옵션을 사용하여 드롭다운 목록을 확장합니다.
    User-Friendly 규칙을 사용하도록 설정하기 위한 규칙 추가 대화 상자의 스크린샷
  6. 두 번째 옵션인 http://localhost/article/123/some-title를 선택합니다. URL 패턴 및 대체 URL이 그에 따라 업데이트되었습니다. 이러한 항목은 규칙 템플릿에서 만들 재작성 규칙에 사용됩니다. 웹 클라이언트가 내부 URL을 사용하여 웹 페이지를 요청할 때 사용할 리디렉션 규칙을 만들려면 "해당 리디렉션 규칙 만들기"를 확인합니다. 이러한 클라이언트는 해당 공용 URL로 리디렉션됩니다.
    또한 "해당 아웃바운드 다시 쓰기 규칙 만들기"를 검사 응답 HTML의 모든 내부 URL 인스턴스를 해당 공용 URL로 바꾸는 아웃바운드 규칙을 만듭니다.
    User-Friendly 규칙을 사용하도록 설정하기 위한 규칙 추가 대화 상자의 스크린샷 해당 공용 U R L 필드가 강조 표시되어 있습니다.
  7. 다시 쓰기, 리디렉션 및 아웃바운드 규칙이 생성되도록 "확인"을 클릭합니다.
    U R L 다시 쓰기 페이지를 표시하는 I S 관리자 창의 스크린샷. 인바운드 및 아웃바운드 규칙이 표시됩니다.

규칙 테스트

생성된 규칙을 테스트하려면 웹 브라우저를 열고 다음 URL을 요청합니다.

http://localhost/article/234/some-title

웹 서버의 다시 쓰기 규칙이 원래 URL을 article.aspx로 변경했으며 쿼리 문자열 매개 변수의 값으로 "234" 및 "some-title"을 전달한 것을 볼 수 있습니다.

웹 브로서에서 마우스를 "링크 URL" 텍스트 위로 이동합니다(또는 메뉴 "페이지" -> "원본 보기..."). 링크의 URL은 원래 쿼리 문자열 매개 변수를 사용하는 형식이었음에도 불구하고 계층 구조 기반 URL 형식을 사용하기 위해 URL 다시 쓰기 모듈로 대체되었습니다.

U RL 다시 쓰기 모듈 테스트 페이지를 표시하는 브라우저 창의 스크린샷 리디렉션된 U R L은 동그라미로 빙글빙글 돌고 있습니다.

또한 요청하는 http://localhost/article.aspx?id=432&title=some-other-title 경우 브라우저가 로 리디렉션되는 것을 볼 수 http://localhost/article/432/some-other-title있습니다.

요약

이 연습에서는 URL 다시 쓰기 모듈에 포함된 "사용자 친화적인 URL" 규칙 템플릿을 사용하여 다시 쓰기 규칙을 생성하는 방법을 알아보았습니다. 이 규칙 템플릿은 기존 웹 애플리케이션에 대해 사용자에게 친숙하고 검색 엔진 친화적인 URL을 사용하도록 설정하기 위한 다시 쓰기 규칙을 디자인하기 위한 시작점으로 사용할 수 있습니다.