ASP.NET MVC에서 사용자에게 커스텀 404 페이지로 리디렉션하기

웹 애플리케이션의 세계에서 원활한 사용자 경험을 유지하는 것은 필수적입니다. 사용자가 URL을 신중하게 입력했지만 존재하지 않는 경로로 인해 실망스러운 오류 페이지를 만나는 상황을 상상해 보세요. 이는 사용자에게 혼란스럽고 실망감을 줄 수 있습니다. 다행히도 개발자는 이러한 시나리오를 우아하게 처리함으로써 우리의 애플리케이션을 향상시킬 수 있습니다.

이번 블로그 포스트에서는 사용자가 존재하지 않는 컨트롤러에 접근하려 할 때 ASP.NET MVC에서 커스텀 404 오류 페이지로 리디렉션하는 방법을 살펴보겠습니다.

문제 이해하기

사용자가 ASP.NET MVC 애플리케이션에서 어떤 컨트롤러나 액션과도 일치하지 않는 URL을 방문하려고 하면 예외가 발생합니다. 예를 들어, 누군가 다음과 같은 URL로 접근하려고 할 경우:

http://www.nosite.com/paeges/1

이 URL은 잘못된 것으로 /pages/ 컨트롤러로 해석되어야 합니다. 우리는 사용자를 일반적인 오류 메시지 대신 친근하고 유익한 커스텀 404 페이지로 리디렉션하고자 합니다.

솔루션 개요

이 목표를 달성하기 위해, 우리는 ASP.NET MVC 애플리케이션을 설정하여 라우팅 예외를 처리하고 지정된 404 페이지로 리디렉션해야 합니다. 다음은 이를 수행하는 단계별 개요입니다.

단계 1: 커스텀 오류 페이지 정의하기

라우팅 구성을 설정하기 전에 첫 번째 단계는 커스텀 404 페이지를 만드는 것입니다. 이는 사용자에게 오류를 알리고 유용한 링크를 제안할 수 있는 간단한 뷰가 될 수 있습니다.

  • 뷰 만들기: /Views/Shared/ 디렉토리에 Error404.cshtml이라는 새 뷰를 추가합니다.
  • 내용 디자인: 내용을 사용자 친화적으로 만드세요. 예를 들어:
    <h1>앗! 페이지를 찾을 수 없습니다</h1>
    <p>죄송합니다, 요청하신 페이지는 존재하지 않습니다. URL을 확인하시거나 홈페이지로 돌아가세요.</p>
    

단계 2: 커스텀 오류에 대한 Web.Config 업데이트

다음으로, 지정된 HTTP 상태 코드가 발생할 때 커스텀 오류 페이지를 표시하도록 ASP.NET MVC 애플리케이션에 알릴 필요가 있습니다. Web.config 파일을 열고 다음을 추가하세요:

<system.web>
  <customErrors mode="On" defaultRedirect="~/Error404">
    <error statusCode="404" redirect="~/Error404" />
  </customErrors>
</system.web>
  • mode: 커스텀 오류 페이지를 활성화하기 위해 On으로 설정합니다.
  • defaultRedirect: 이는 커스텀 오류 페이지의 경로입니다.
  • error: 이는 404 오류가 발생할 때 애플리케이션이 지정된 페이지로 리디렉션해야 함을 지정합니다.

단계 3: Global.asax 파일에서 라우트 처리하기

이제 라우팅 문제를 캡처하도록 설정합니다. Global.asax 파일을 열고 다음 메소드를 추가합니다:

protected void Application_Error()
{
    Exception exception = Server.GetLastError();
    HttpException httpException = exception as HttpException;

    if (httpException != null)
    {
        int httpCode = httpException.GetHttpCode();
        if (httpCode == 404) // 찾을 수 없음
        {
            Response.Clear();
            Server.ClearError();
            Response.Redirect("~/Error404");
        }
    }
}
  • Application_Error(): 이 메소드는 애플리케이션에서 처리되지 않은 오류가 발생할 때마다 실행됩니다.
  • 예외 캡처: 코드는 예외를 캡처하고 HTTP 상태 코드가 404인지 확인합니다.
  • 리디렉션: 만약 그렇다면, 오류를 지우고 사용자를 커스텀 404 페이지로 리디렉션합니다.

결론

이 단계를 따르면 존재하지 않는 페이지로 이동하는 사용자가 일반적인 예외 오류 대신 친근한 404 오류 페이지를 보도록 할 수 있습니다. 이는 사용자 경험을 개선할 뿐만 아니라 ASP.NET MVC 애플리케이션의 전문성을 유지합니다.

웹 애플리케이션을 계속 구축하고 개선하면서, 오류를 처리하는 방식이 세부 사항에 대한 주의와 사용자 만족도에 대한 헌신을 얼마나 잘 나타내는지를 기억하세요. 이러한 간단한 변경을 구현하는 데 시간을 들이고 웹 애플리케이션의 사용성에 긍정적인 영향을 미치는 것을 확인하세요.


이 간단한 단계를 통해 ASP.NET MVC 애플리케이션이 라우팅 오류를 처리하는 방식을 향상시킬 수 있습니다. 즐거운 코딩 되세요!