갑자기 나는 ASP.NET 2.0 자체가 UrlMapping(web.config 파일의 <urlMappings> 섹션)에 대한 자연스러운 지원을 제공한다는 사실을 발견했습니다. 요즘에는 프로그램 작성이 기술적인 작업이 아니라고 한탄했습니다.
<?xml 버전="1.0"?>
<구성>
<시스템.웹>
<url매핑>
<add url="~/2006/07" mappedUrl="~/Month.aspx?year=2006&month=01"/>
<add url="~/2006/08" mappedUrl="~/Month.aspx?year=2006&month=02"/>
</urlMappings>
<컴파일 디버그="true"/>
</system.web>
</구성>
이 구성을 사용하면 ASP.NET 프로그램이 ASP.NET 개발 서버에서 UrlMapping을 직접 지원할 수 있지만(즉, ASP.NET 프로젝트를 빌드할 때 파일 시스템 선택) 몇 가지 단점이 있습니다.
1. 고정된 주소만 매핑이 가능하므로 하나의 주소만 구성할 수 있습니다.
2. ASP.NET 개발 서버에서는 다른 것을 구성할 필요가 없습니다. IIS의 요청 응답 모델로 인해 IIS에서 매핑을 설정해야 하는 것으로 추정됩니다. 이 경우에는 ASP.NET Development Server에서 매핑을 설정하는 방법을 알아보기 위해 여기저기서 정보를 찾아보았지만 결과적으로는 작동하지 않는다는 결과가 나왔습니다.
UrlMapping은 정규식을 지원하지 않는다는 단점을 고려하여 정규식을 지원하는 UrlMapping을 만들었습니다. 안타깝게도 UrlMapping은 HttpApplication에 의해 호출되고 HttpApplication은 Internal이기 때문에 아무것도 할 수 없어 구현이 신뢰할 수 없습니다. UrlMapping과 비교하여
Web.config에서 추가 <Section> 파일을 다운로드합니다(다운로드한 파일에는 RegexUrlMapping 구성 요소와 샘플 ASP.NET이 포함되어 있습니다. ASP.NET 프로그램은 IIS에 배포되어야 하며 매핑을 설정해야 합니다. 방법은 가상 디렉터리를 마우스 오른쪽 단추로 클릭하고 속성을 선택한 다음 구성을 선택하고 와일드카드 응용 프로그램 매핑에서 c:windowsmicrosoft.netframeworkv2.0.50727aspnet_isapi.dll에 대한 참조를 추가하고 후크를 제거하는 것입니다. 파일이 존재하는지 확인합니다. 게으르게 하기 위해 와일드카드를 사용하여 모든 것을 ASP.NET 2.0의 ISAPI에 매핑합니다. 실제 개발에서는 적절하게 보다 구체적인 매핑을 추가하는 것이 가장 좋습니다.
Web.config의 구성 예는 다음과 같습니다. 다음과 같이:
<?xml 버전="1.0"?>
<구성>
<config섹션>
<section name="RegexUrlMappings" type="Cnblogs.DTC.THIN.RegexUrlMapping.RegexUrlMappingsSection,Cnblogs.DTC.THIN.RegexUrlMapping"/>
</configSections>
<RegexUrlMappings 활성화="true" rebaseClientPath="true">
<url="(d+)$" mappedUrl="default.aspx?id=$1"/> 추가
<add url="(?<=/)(?<id>[az]+)$" mappedUrl="default.aspx?id=${id}" />
<추가 url="/$" mappedUrl="/default.aspx?id=0"/>
</RegexUrlMappings>
<시스템.웹>
<http모듈>
<이름 추가="RegexUrlMappingModule" type="Cnblogs.DTC.THIN.RegexUrlMapping.RegexUrlMappingModule,Cnblogs.DTC.THIN.RegexUrlMapping"/>
</http모듈>
<컴파일 디버그="true"/>
<인증 모드="Windows"/>
</system.web>
</configuration>
RegexUrlMapping의 활성화된 속성은 매핑을 열고 닫는 데 사용됩니다. rebaseClientPath의 경우 HttpContext.RewritePath의 rebaseClientPath 매개 변수를 참조하세요.
<add>는 매핑 규칙을 추가하는 데 사용되며, url은 경로와 일치하는 정규식 패턴이고, mappedUrl은 대체 규칙입니다. 사용법은 Regex.Replace 메서드를 참조하세요. 위 예에서 첫 번째 추가는 그룹 1을 다음과 같이 정의합니다. URL에 괄호가 있으므로 나중에 참조할 때 $1
두 번째 추가는 URL에 (?<id>)를 사용하여 그룹 ID를 정의한 다음 ${id}를 사용하여 그룹을 참조합니다. 세 번째는 고정 문자열 교체입니다. 여전히 정규식이 매우 중요한 것 같습니다~~
http ://www.cnblogs.com/thinhunan/archive/2006/08/22/regexurlmapping.html