URL Rewrite Module 2.1 URL 재 작성 모듈 규칙 작성
본 연습 은 다음 과 같은 선 결 조건 을 만족 시 켜 야 한다.
IIS 설치 URL Rewrite Module 2.1
짧 은 주소
페이지 다운로드
http://www.iis.net/extensions/URLRewrite
링크 다운로드
https://www.iis.net/downloads/microsoft/url-rewrite#additionalDownloads
https://download.microsoft.com/download/1/2/8/128E2E22-C1B9-44A4-BE2A-5859ED1D4592/rewrite_amd64_en-US.msi
ASP.NET 캐릭터 서 비 스 를 사용 한 IIS 7 이상 버 전 입 니 다.
URL 재 작성 모듈 이 설치 되 었 습 니 다.더 많은 정 보 는 URL 재 작성 모듈 을 참조 하 십시오.
테스트 페이지 설정
URL 재 작성 모듈 이 어떻게 작 동 하 는 지 보 여주 기 위해 서 는 간단 한 테스트 ASP.NET 페이지 를 사용 할 것 입 니 다.이 페이지 는 웹 서버 변 수 를 읽 고 브 라 우 저 에서 값 을 출력 합 니 다.
다음 ASP.NET 코드 를 복사 하여 article.aspx 라 는 파일 의%System Drive%\inetpub\www wroot\폴 더 에 넣 습 니 다.
<%@ 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>
</table>
</body>
</html>
이 파일 을 복사 한 후 탐색http://localhost/article.aspx웹 페이지 가 브 라 우 저 에 올 바 르 게 나타 나 는 지 확인 합 니 다.재 작성 규칙 만 들 기
간단 한 재 작성 규칙 을 만 들 것 입 니 다.이 규칙 은 다음 형식 으로 URL 을 다시 쓸 것 입 니 다.
http://localhost/article/342/some-article-title
지:
http://localhost/article.aspx?id=342&title=some-article-title。
IIS 관리자 의 URL 재 작성 UI 를 사용 하여 재 작성 규칙 을 만 들 것 입 니 다.이 를 위해 다음 절차 에 따라 조작 하 십시오.
1.IIS 관리자 로 이동 합 니 다.
2.기본 사 이 트 를 선택 합 니 다.
3.'기능 보기'에서'URL 재 작성'을 클릭 합 니 다.
4.오른쪽'조작'창 에서'규칙 추가...'를 누 르 십시오.
5.'규칙 추가'대화 상자 에서'공백 규칙'을 선택 하고'확인'을 누 르 십시오.
현재,실제 재 작성 규칙 을 정의 해 야 합 니 다.URL 재 작성 모듈 에서 필요 한 네 가지 정 보 를 지정 하여 재 작성 규칙 을 정의 합 니 다.
'이름'텍스트 상자 에 이 규칙 을 표시 하 는 유일한 이름 을 입력 하 십시오.예 를 들 어'article.aspx 로 다시 쓰기'입 니 다.
정의 모드
패턴 텍스트 상자 에 다음 문자열 을 입력 하 십시오:
^article/([0-9]+)/([_0-9a-z-]+)
이 문자열 은 다음 조건 을 만족 시 키 는 모든 URL 문자열 과 일치 하 는 정규 표현 식 입 니 다.
정의 동작
우리 가 만 들 규칙 은 URL 을 다시 써 야 하기 때문에'작업'그룹 상자 에 열 거 된'재 작성 작업'형식 을 선택 하 십시오."URL 다시 쓰기:"텍스트 상자 에 다음 문자열 을 입력 하 십시오.
article.aspx?id={R:1}&title={R:2}
이 문자열 은 입력 한 URL 을 다시 쓸 새 값 을 지정 합 니 다.검색 문자열 매개 변수 값 에 대해 서 는{R:1}과{R:2}을 사 용 했 습 니 다.괄호 를 사용 하여 규칙 모드 에서 정 의 된 캡 처 그룹 에 대한 역방향 참조 입 니 다.
모든 다른 설정 의 기본 값 을 유지 합 니 다."입 소 규칙 편집'속성 페이지 는 다음 페이지 와 유사 해 야 합 니 다.
오른쪽 에 있 는'응용'을 누 르 면 규칙 을 저장 합 니 다.
프로필 의 재 작성 규칙 보기
재 작성 규칙 은 ApplicationHost.config 파일 이나 Web.config 파일 에 저 장 됩 니 다.방금 만 든 규칙 의 설정 을 확인 하려 면%SystemDrive%\inetpub\\www wroot 의 웹 config 파일 을 열 어 주 십시오.이 파일 에서 이 규칙 의 정 의 를 포함 하 는 부분 을 보 셔 야 합 니 다:
<rewrite>
<rules>
<rule name="Rewrite to article.aspx">
<match url="^article/([0-9]+)/([_0-9a-z-]+)" />
<action type="Rewrite" url="article.aspx?id={R:1}&title={R:2}" />
</rule>
</rules>
</rewrite>
위의 문법 은 Windows Azure 사이트(WAWS)의 Web.config 에 URL 재 작성 을 설정 하 는 데 도 적 용 됩 니 다.테스트 재 작성 규칙
이 규칙 이 URL 을 올 바 르 게 다시 썼 는 지 확인 하려 면 웹 브 라 우 저 를 열 고 아래 URL 을 요청 하 십시오.
http://localhost/article/234/some-title
웹 서버 의 재 작성 규칙 이 원본 URL 을 Article.aspx 로 변경 하고'234'와'some-title'을 검색 문자열 매개 변수 값 으로 전달 하 는 것 을 보 셔 야 합 니 다.
리 셋 규칙 만 들 기
현재,우 리 는 리 셋 규칙 을 만 들 것 입 니 다.이 규칙 은 다음 과 같은 형식 으로 모든 URL 을 리 셋 할 것 입 니 다.
http://localhost/blog/some-other-title/543
형식 은 다음 과 같 습 니 다.
http://localhost/article/543/some-other-title
규칙 을 바 꾸 면 한 개 이상 의 URL 이 웹 페이지 를 가리 킬 수 있 습 니 다.
이 를 위해 IIS 관리자 에서 URL 재 작성 기능 보기 UI 를 열 어 주 십시오."규칙 추가..."를 누 른 다음"공백 규칙"템 플 릿 을 다시 선택 하 십시오.
"편집 규칙"페이지 에 다음 내용 을 입력 하 십시오.
재 설정 URL 을 입력 하 십시오.아래 와 같 습 니 다.
모든 다른 설정 의 기본 값 을 유지 합 니 다.오른쪽 에 있 는'응용'을 누 르 면 규칙 을 저장 합 니 다.
테스트 리 셋 규칙
이 규칙 이 요청 을 정확하게 재 설정 하 였 는 지 확인 하려 면 웹 브 라 우 저 를 열 고 아래 URL 을 요청 하 십시오.
http://localhost/blog/some-other-title/323
보시 다시 피,http://localhost/article/323/some-other-title리 셋 규칙 을 실행 하기 때문에 브 라 우 저 는 리 셋 규칙 에 따라 요청 을 다시 썼 습 니 다.
접근 차단 규칙 만 들 기
Google 이 만 든 세 번 째 규칙 은 사이트 에 대한 모든 요청 을 막 는 데 사 용 됩 니 다.(이 요청 들 이 호스트 헤드 를 설정 하지 않 았 다 면)호스트 이름 대신 서버 의 IP 주 소 를 사용 하여 HTTP 요청 을 하 는 해 킹 시 도 를 방지 하려 면 이러한 유형의 규칙 이 유용 합 니 다.
IIS 관리 자 를 사용 하지 않 은 상태 에서 이 규칙 을 만 들 것 입 니 다.%SystemDrive%\\inetpub\www wroot\\본문 첫머리 에 article.aspx 테스트 파일 에 사용 할 폴 더 에서 웹 config 파일 을 엽 니 다.이
<rule name="Fail bad requests">
<match url=".*"/>
<conditions>
<add input="{HTTP_HOST}" pattern="localhost" negate="true" />
</conditions>
<action type="AbortRequest" />
</rule>
이
<rewrite>
<rules>
<rule name="Fail bad requests">
<match url=".*"/>
<conditions>
<add input="{HTTP_HOST}" pattern="localhost" negate="true" />
</conditions>
<action type="AbortRequest" />
</rule>
<rule name="Redirect from blog">
<match url="^blog/([_0-9a-z-]+)/([0-9]+)" />
<action type="Redirect" url="article/{R:2}/{R:1}" redirectType="Found" />
</rule>
<rule name="Rewrite to article.aspx">
<match url="^article/([0-9]+)/([_0-9a-z-]+)" />
<action type="Rewrite" url="article.aspx?id={R:1}&title={R:2}" />
</rule>
</rules>
</rewrite>
우 리 는 규칙 을 분석 하여 그것 의 작용 을 이해 합 시다.위의 요 소 는 이 규칙 이 모든 URL 문자열 과 일치 할 것 임 을 나타 낸다.
위의 요 소 는 규칙 에 조건 을 추가 하 였 습 니 다.이 조건 은 서버 변 수 를 읽 는 HTTPHOST 는 호스트 헤드 값 을 검색 하고 모드'localhost'와 일치 시 킨 다음 결 과 를 되 찾 습 니 다.이 조건 은 호스트 헤드 가'localhost'와 일치 하지 않 음 을 검증 하 는 것 이다.
위의 요 소 는 URL 재 작성 모듈 에 HTTP 요청 이 끝 났 음 을 알려 줍 니 다.
테스트 접근 차단 규칙
이 규칙 을 테스트 하려 면 웹 브 라 우 저 를 열 고 https://download.microsoft.com/download/1/2/8/128E2E22-C1B9-44A4-BE2A-5859ED1D4592/rewrite_amd64_zh-CN.msi 을 요청 하 십시오.서버 에서 응답 을 받 지 못 한 브 라 우 저 를 보 셔 야 합 니 다.하지만 부탁 하 시 면http://localhost/article/234/some-title웹 서버 가 성공 적 으로 응답 합 니 다.
실패 한 디 스 플레이 는 다음 과 같 습 니 다:
다음 과 같이 성공 적 으로 보 여 줍 니 다:
개요
이 연습 에서 IIS 관리 자 를 사용 하거나 웹.config 파일 을 수 동 으로 편집 하여 URL 재 작성 규칙 을 설정 하 는 방법 을 배 웠 습 니 다.이 연습 에서 만 든 규칙 은 URL 재 작성 모듈 의 중요 한 기능 을 보 여 줍 니 다.예 를 들 어 정규 표현 식 지원 과 HTTP 헤더 와 서버 변 수 를 사용 하여 재 작성 결정 을 하 는 능력 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
mac iCloud 폴더 경로 | 터미널 명령으로 iCloud 파일로 이동하는 방법명령으로 iCloud 파일로 쉽게 이동할 수 없어 빠졌습니다. 어쩌면 mac 유저는 한 번은 빠질 것이다 포인트이므로 기억해 두는 것이 좋을 것입니다. mac os - 10.13.6 High Sierra /Users...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.