2022년 5월 11일 수요일

codeigniter4(ci4) 404 페이지 설정

 /app/Config/Routes.php

$routes->set404Override(function($message=null){
    $response = service('response');
    $response->setStatusCode(404);
    echo view('errors/html/http404', ['message'=>$message]);
}); 

ci4 공식문서의 예제로 404페이지를 오버라이드 할 경우 HTTP 헤더에 200으로 떨어지는 문제가 있어 위와 같이 처리가 가능하다.


또는 에러를 전반적으로 처리하는 컨트롤러가 있다면

$routes->set404Override(function($message=null)
{
    $errors = new \App\Controllers\Errors;
    $errors->error404($message);
}

위와 같이 처리가 가능하다. $this->response는 바로 사용할수 없기 때문에 service 함수로 객체를 생성해서 사용하면 된다.