2012-09-17 2 views
4

사용자 정의 404 페이지로 리디렉션 할 웹 앱이 있습니다. ".aspx"확장자가있는 경우를 제외하고는 모든 URL에서 작동합니다..aspx 확장자에 대한 맞춤 404 페이지 오류

서버는 Windows Server 2008이며 여기에 web.config에 다음 설정이 있습니다 (빠른 예제로 google.com 사용).

<customErrors defaultRedirect="http://www.google.com" mode="On" redirectMode="ResponseRedirect"></customErrors> 

<httpErrors errorMode="Custom"> 
<clear /> 
<remove statusCode="500" subStatusCode="-1" /> 
<remove statusCode="404" subStatusCode="-1" /> 
<error statusCode="404" prefixLanguageFilePath="" path="/404-Page/" responseMode="ExecuteURL" /> 
<error statusCode="500" prefixLanguageFilePath="" path="/404-Page/" responseMode="ExecuteURL" /> 
</httpErrors> 

는 다시 HTTP 오류는 ".ASPX"

답변

0

글쎄 이 문제를 해결하기 위해 오류를 가로 채고 web.config (customErrors 이하)에 설정된 사용자 정의 404 페이지로 사용자를 전송하는 모듈을 생성해야했습니다. 이 모듈은 응용 프로그램이 오류를 얻을 때마다에 이벤트 핸들러를 추가 :

public void Init(HttpApplication context) 
    { 
     context.Error += new EventHandler(FileNotFound_Error); 
    } 

그리고 기능 FileNoteFound_Error는 리디렉션을 수행합니다.

0

customErrors 요소는 ASP.NET 응용 프로그램의 사용자 지정 오류 메시지에 대한 정보를 제공의 확장하지만 모든 것을 작동합니다. 트랩하려는 특정 HTTP 오류 코드의 customErrors 요소에 error 하위 요소를 추가하십시오.

<error statusCode="404" redirect="error404.htm"/> 
+0

나는 그것을 시도했다. 여전히 같은 문제가 발생합니다. – Channafow

+0

브라우저에 exsist가 아닌 .aspx 파일의 URL을 입력하면 어떻게됩니까? – DaveB

+0

그냥 내 사용자 정의 페이지가 아닌 일반 ASP 오류 페이지로 이동합니다. – Channafow

0

IIS6에서도 비슷한 문제가있었습니다. 나는 global.asax의 Application_Error에서 처리를 끝내었다. 작동하게하려면 존재하지 않는 aspx 페이지에 404 사용자 정의 페이지를 설정해야했습니다 (기존 aspx 페이지로 설정하면 EPiServer의 내부 오류 처리로 삼킨 것입니다 ...)