asp.net 주소 매핑-의사-정적

출처: 인터넷
작성자: 사용자

중간 거래 SEO 진단 Taobao 게스트 클라우드 호스트 기술 홀

asp.net 주소 매핑 사용자 액세스, 가상 주소 지도의 실제 파일로 정의 되 고 가상 주소 정적 페이지를 있을 수 있습니다. 예를 들면: Http://fuzhou.naoqiu.com/bus 페이지에 방문, 실제로 the/bus.aspx 페이지를 방문.

asp.net 주소 매핑은 HttpModule 요청 원리를 통해 이루어집니다.

HttpModule 원리는 무엇입니까?

HTTP 요청 HttpModule 컨테이너의 전달 중 한 번 (Resolverequestcache 이벤트)에 HttpHandler 컨테이너에 HTTP 요청에 전달합니다. 이 이벤트 후 HttpModule 컨테이너 HttpHandler 항목 인스턴스를 만들지만 HTTP 요청 컨트롤은이 시간에 항복 하지. 대신, 그것 acquirerequeststate 이벤트와 Prerequesthandlerexcute 이벤트를 실행 하 고 있습니다. Prerequesthandlerexcute 이벤트 후 HttpModule 창은 실제 HTTP 요청 처리에 대 한 HttpHandler 컨테이너를 일시적으로 컨트롤을 손.

ProcessRequest 메서드는 HTTP 요청을 처리할 HttpHandler 컨테이너 안에서 실행 됩니다. 컨테이너 후 전체 HTTP 요청을 처리 하는 HttpHandler 컨트롤 반환 됩니다 Httpmodule, httpmodule, 클라이언트에 반환 될 때까지 처리 HTTP 요청 흐름의 전달 계층을 계속.

  

빌려 보 친구 사진

원리 이해, 후 나 다음 코드로 간단한 주소 지도 완료 합니다.

먼저 주소 지도 기본 클래스 완료.

< 요약 >

주소 다시 쓰기

</요약 >

공용 추상 클래스 Basemodulerewriter:ihttpmodule

{

< 요약 >

초기화 호출

</요약 >

< param name = "응용 프로그램" >< / param >

공용 가상 void Init (HttpApplication 응용 프로그램) 없음

응용 프로그램입니다. BeginRequest + = 새로운 EventHandler (app_beginrequest);

}

공용 가상 void Dispose () {}

< 요약 >

요청 시작

</요약 >

< param 이름을 "보낸 사람" = >< / param >

< param name = "E" >< / param >

가상 void App_beginrequest (개체 sender, EventArgs e) 보호

{

HttpApplication app HttpApplication;으로 보낸 사람 =

(응용 프로그램)를 다시;

}

< 요약 >

작업의 추상 메서드

</요약 >

< param name = "응용 프로그램" >< / param >

보호 된 추상 무효 재작성 (HttpApplication app);

}

주소 매핑 작업에 대 한 필요성을 완료 하는 기본 클래스를 상속:

보호 재정의 무효 재작성 (HttpApplication 애플 리 케이 션)

{

HttpContext 컨텍스트 = 애플 리 케이 션. 컨텍스트;

HttpRequest 요청 = 애플 리 케이 션. 요청;

부분 문자열 = Regex.match (요청입니다. Url.tostring (), @ "(? < = http\: \ / \ /). *"). Value.tolower의 행정구역 트림 ('/');

경우 (부분. IndexOf ("/") = = 1)

{

부분 = Regex.match (부분, @ "^ \w+"). 값;

스위치 (부분)

{

'버스' 경우: 컨텍스트. RewritePath ("/ bus.aspx"); 휴식;

경우 "www":

경우 "Naoqiu": 컨텍스트입니다. RewritePath ("/ default.aspx"); 휴식;

기본값: 컨텍스트입니다. RewritePath ("/ index_city.aspx"); 휴식;

}

}

}

그래서 우리가 할 건가요? 예, 그것은 구성 파일입니다. 여러 장소 같이 Web.config 파일을 수정할 수 있습니다.

<!-규칙 요청->

< httpModules >

< 추가 이름 "Bianminmodulerewriter" =
유형 = "Bianmin.urlrewriter.modulerewriter,bianmin.urlrewriter"/ >

< / httpModules >

< system.webServer >

< 처리기 >
< 이름 추가 = "Aspnet_isapi" 경로 = "*" 동사 = "*" 모듈 "않음" 스크립트 프로세서 = = "C:\Windows\Microsoft.NET\ Framework64\v4.0.30319\aspnet_isapi.dll "resourcetype =" 지정 되지 않음 "requireaccess =" None "전제 조건 =" Classicmode, runtimeversionv4.0, bitness64 "/ >
< / 처리기 >

< defaultDocument >

< 파일 >

< 취소 / >

< 가치 = "default.aspx"/ >

< / 파일 >

< / defaultDocument >

< /system.webServer >

참고: Framewore 2..0를 사용 하 여 필요한 \aspnet_isapi.dll 파일 경로 변경 하려면

소스 코드 다운로드 주소: http://download.naoqiu.com 다운로드

연락처

이 페이지의 내용은 인터넷에서 가져온 것이므로 Alibaba Cloud의 공식 의견이 아닙니다.이 페이지에서 언급 된 제품 및 서비스는 Alibaba Cloud와는 관련이 없으므로이 페이지의 내용이 골칫거리 인 경우 저희에게 알려주십시오. 우리는 5 일 근무일 이내에 이메일을 처리 할 것입니다.

커뮤니티에서 표절 사례를 발견한 경우 info-contact@alibabacloud.com 으로 관련 증거를 첨부하여 이메일을 보내주시기 바랍니다. 당사 직원이 영업일 기준 5일 내에 연락 드리도록 하겠습니다.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.