1

URL 재 작성 확장 기능을 갖춘 asp.net 4에서 개발 된 CMS 응용 프로그램을 사용하고 있습니다. 우리의 응용 프로그램은 수천 개의 CMS 페이지를 호스팅하며 솔루션에서 Response.Redirect는 대문자가 포함 된 URL과 함께 사용되었습니다. URL 재 작성 규칙을 사용하여 요청 된 URL을 소문자로 변환하면 URL에 대문자가있는 페이지의 301 상태 코드가 발생합니다. 이는 서구의 관점에 적합하지 않습니다.Response.Redirect Interception

그래서 저는 Response.Redirect 호출을 글로벌 파일에서 단일 위치에서 가로 채고이를 소문자로 변환하는 대신 코드 파일로 이동하여 모든 URL을 response.redirect로 전달하는 방법을 기대하고 있습니다. 메소드를 소문자로 변환합니다.

+0

아마도 global.asax 파일에서 application_beginrequest 또는 application_prerequesthandlerexecute를 처리 할 수 ​​있습니까? – Monah

+0

그 리디렉션 호출을 가로 채기위한 논리로 IHttpModule을 구현하기를 고대하고 있습니다. –

+0

잘하면 도움이 될이 문서를 확인 http://msdn.microsoft.com/en-us/magazine/cc301704.aspx – Monah

답변

0

MSDN에 들어가서 Response.Redirect를 조사하면 get/set을 지원하는 위치 헤더가 설정됩니다.

void Application_EndRequest(object sender, EventArgs e) 
{ 
    HttpApplication application = sender as HttpApplication; 
    HttpContext context = application.Context; 

    if (context.Response.IsRequestBeingRedirected) 
    { 
     string redirectedLocation = context.Response.Headers["Location"]; 
     context.Response.Headers["Location"] = redirectedLocation.ToLowerInvariant(); 
    } 

}