URI Routing

2015. 9. 7. 16:19Programming/CodeIgniter

반응형

* URI Routing : 사용자가 접근한 URI에 따라서 Controller의 메소드를 호출해 주는 기능.

* mapping : CI에서 URI에 따라서 호출되는 규칙,방법.

* config/routes.php는 mapping 방식을 CI 규칙과 다르게 설정하는 파일.(Remapping)


* application/config/routes.php 예제

//URI가 "topic/숫자"가 왔을 경우 내부적으로 topic/get/숫자와 같음.

$route['topic/(:num)'] = "topic/get/$1";


//URI가 "post/숫자"가 왔을 경우 내부적으로 topic/get/숫자와 같음.

$route['post/(:num)'] = "topic/get/$1";


//URI가 "topic/a부터z 중 문자 포함/a부터z중 문자 포함/숫자"일 경우 내부적으로 $1/$2/$3과 같음.

$route['topic/([a-z]+)/([a-z]+)/(\d+)'] = "$1/$2/$3";


//어떤 URI를 입력하지 않고 도메인주소만을 입력했을 login 페이지와 같음

$route['default_controller'] = "login";


//404에러가 발생했을 시 404페이지와 같음.

$route['404_override'] = "errors/error404";  //404 에러가 났을 경우 errors/error404를 호출.


* controller/errors.php

<?

    class Errors extends CI_Controller {

        public function error404() {

            $this->load->view('head');

            $this->load->view('error/404');

            $this->load->view('footer');

        }

    }
?>


* view/error/404.php

<?

    echo "Not Found Page!!!";

?>



* 결론

 1.routes.php에서는 에러 발생 시, 지정한 컨트롤러 파일(controller/errors.php)이 호출되도록 설정을 해줄 수 있음.

 2.errors.php 컨트롤러 파일안에 정의된 error404 메소드가 실행됨.

 3.view에 뿌려주는 값을 출력해줌.(views/error/404.php)

반응형