CI 묻고 답하기

제목 routes 질문입니다.-
글쓴이 이지포토 작성시각 2013/05/03 14:05:12
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 17642   RSS
 개발pc 에서 소스는 잘 돌아갑니다.

실서버에 이전하니 안돌아 가네요. 404 에러..

routes.php 에 디폴트로 걸어준 라우팅은 잘 먹습니다.(따라서 릴라이트모듈이 안돌아가거나 작동안하리라는 의심안함)
예,
$route['default_controller'] = "service/main";

그런데 다른 페이지들은 안돌아가네요.




url 주소가 http://www.abc.co.kr/service/monthchecklist
 
라고 했을때
service 는 application/controllers 밑에 있는 폴더 명이고
 
application/controllers/monthchecklist.php 페이지에서 
 
class Monthchecklist extends CI_Controller { 가 정의되면  당연히 먹어야 되는게 아닌가요?  }
 
 
이것이 404 에러가 뜬다면 어떤 잘못을 한건가요?
 
 다음글 페이지를 못찾네요 (5)
 이전글 php5.3&리눅스 환경에서 db연결 문제때문에... (11)

댓글

변종원(웅파) / 2013/05/03 14:08:36 / 추천 0
오타인가요? 말씀하신 컨트롤러가 service 디렉토리 밑에 있는건 확실한거죠?


http://www.abc.co.kr/index.php/service/monthchecklist 접속해보세요.

접속되면 rewrite 문제입니다.

디폴트 route는 컨트롤러/메소드 없이 접속했을때 실행시켜주는 것이라 rewrite랑은 다릅니다.
index.php랑 상관없이 실행되는겁니다.
이지포토 / 2013/05/03 14:47:10 / 추천 0
 답변 감사 합니다.
말씀하신대로  rewrite 문제네요.
그런데 라우터를 아래와 같이 했을때 
$route['default_controller'] = "service/main";

에서 main.php 이 실행되는것은 rewrite 와는 관계 없다는 말씀이시죠?
변종원(웅파) / 2013/05/03 15:10:02 / 추천 0
이지포토/ 네 

$route['default_controller'] = "service/main"; 이게 설정되서 

aa.com 으로 접속했을때 service/main 이 실행되는 것은 ci가 내부적으로 처리하는 것입니다.

rewrite는 아파치 서버단이구요.

johnchoi / 2013/08/09 01:44:09 / 추천 0
끼어들어서 죄송하지만.. 위와같은 상황에서  http://www.abc.co.kr/를 접속하면 ci가 자동적으로 controller/service폴더에 main이란 컨트롤러로 가게 하는거죠? 그럼 그 이후엔 main.php이라는 컨트롤러안에서 index function이던 __construct()등등...에 의해서 작동 되는거구요?  

그럼 만약 routes.php에 
$route['default_controller'] = "page";
이렇게 해놓으면 
abc.co.kr/admin을 접속하던,
abc.co.kr/mobile을 접속하던,
abc.co.kr/         을 접속하던 무조건
해당 서브폴더들(admin, mobile 혹은 controller root폴더)에서 무조건 
page라는 컨트롤러를 찾아서 연결시켜야 되는게 맞는건가요??

죄송해요. 너무 질문이 길이서.....

들국화 / 2013/08/09 09:58:59 / 추천 0
johnchoi/ 컨트롤러 이름이 없을때 나오는게 디폴트 컨트롤러로 알고 있습니다.
원하늗데로 하려면 routes.php 를 이용 하세요.
johnchoi / 2013/08/10 01:01:20 / 추천 0
 들국화/  답변 감사합니다!!! 
제가 만들었던 실수때문에 말씀하신것처럼 알고있었던것이 제가 잘못알고 있는건가하는 착각까지 했었네요.

점점더 기본이 중요하다고 느끼고 있는 요즘입니다..