2010-01-21 2 views
3

다시 작성 페이지를 리디렉션하는 방법을 알고 있습니다. 하지만 404 페이지가있을 때 어떻게 내 자신의 사용자 정의 404 페이지를 표시하겠습니까 (나는 그것을 다시 작성할 수 있음을 알고 있습니다). 그리고 이것은 사실 일반 404 페이지가 아니라 재 작성된 페이지라고 말합니까? 내가 서버를 묻는 오류 코드를 대신 설정하는 방법맞춤 404 페이지를 만들고 404 메시지를 보내는 방법은 무엇입니까?

-edit-

? 사용자가/user/invaliduser /에 간다면 403이나 404를 보내고 싶지만 내 재 작성은 유효한 페이지로 보내 사용자 정보를 표시하므로 나던에 오히려 그때 비어있는 필드가 존재하는 법을 알고 싶다. 페이지.

답변

2

더 유연하게하려면 다음 엄격한으로 404.html 내 모범을 따라 자신의 파일에 web.config 파일에서 404 오류를 리디렉션 할 수 있습니다. Global.asax.cs 재정에서 : 내 404.aspx이 의견을 보내 양식이 포함 예를 들어

public void Application_Error(Object sender, EventArgs e) 
{ 
     if (HttpContext.Current.Request.IsLocal) return; 

     Exception ex = Server.GetLastError(); 
     HttpException httpEx = ex as HttpException; 
     string errorUrl; 
     if (httpEx != null && httpEx.GetHttpCode() == 403) 
      errorUrl = "~/error/403.aspx"; 
     else if (httpEx != null && httpEx.GetHttpCode() == 404) 
      errorUrl = "~/error/404.aspx"; 
     else 
      errorUrl = "~/error/500.aspx"; 
     Server.Transfer(errorUrl); 
} 

, 403.aspx는 - 사용자에 대한 더 흥미로운 항목을 노출하고, 500 관리자에게 경고를 보냅니다.

+0

흥미 롭습니다. 서버에 묻는 대신 오류 코드를 어떻게 설정할 수 있는지 알고 있습니까? 사용자가 goto/user/invaliduser/내가 403이나 404를 보내고 싶지만 내 재 작성이 사용자 정보를 표시하기 위해 올바른 페이지로 보내면 페이지의 빈 필드보다는 오히려 나던 것을 말하고 싶습니다. . –

+2

@ acidzombie24 두 가지 방법이 있습니다. HttpException (403) 또는 다른 코드를 throw하십시오. 또는 명시 적으로 HttpContext.Current.Response.StatusCode를 설정하십시오. 마지막 방법은 심지어 성공 (200) 이전 오류를 재정의 할 수 있습니다. – Dewfy

1

는 U는으로 404.html을하고

<error statusCode="404" redirect="YOURFILE.htm" /> 
관련 문제