CI 묻고 답하기

제목 CI controller routing iframe 질문
글쓴이 학학이 작성시각 2016/07/13 12:46:09
댓글 : 10 추천 : 0 스크랩 : 0 조회수 : 18570   RSS

CI에 default_controller를  mangerhome으로 하고

managerhome.php의 index()에서 view('manager'); 호출합니다.

 

view/manager.php 에선

<iframe src="/managerhome/apiList"> 라는 프레임이 /managerhome/apiList를 호출하는데

다음과 같이 Not Found가 뜨네요

managerhome.php 에 function apiList() 있습니다.

iframe도 똑같이 주소찾에 127.0.0.1/managerhome/apiList 한것과 같은거 아닌가요?

해당 url 입력시 또한 안됩니다.

무엇이 문제일까요?

 다음글 디폴트페이지 설정에 대해서... (4)
 이전글 CI 개발중 데이터 확인 (5)

댓글

kaido / 2016/07/13 13:13:18 / 추천 0

127.0.0.1/index.php/managerhome/apiList 

이건 되시나요?

학학이 / 2016/07/13 14:22:55 / 추천 0

헐 혹시 제 서버를 보고 계신가요? 

어떻게 바로 해결책이 나오죠? ㅎㅎ

지금 받은 소스에 index.php 죽이기가 되어 있는건가요?

controller 기초를 다시 보고 와야하나요?

학학이 / 2016/07/13 14:25:05 / 추천 0

추가적으로 src="index.php/mangerhome/apiList" 하면 잘 나오네요 

서버에 있는 프로젝트 그대로 복사해서 로컬에서 하는중인데

이건 apache 설정 문제인가요?

kaido / 2016/07/13 15:07:51 / 추천 0

네. index 죽이기를 하셔야 합니다.

 

http://www.codeigniter-kr.org/bbs/view/lecture?idx=7073

 

초보 분들이 흔히 하는 실수 거든요. index.php 죽이기를 빼먹고 테스트 했을 경우입니다.

학학이 / 2016/07/13 15:23:05 / 추천 0

다시 질문 드립니다.

현재 CI 기능 개선 중이고 서버에 있는 코드엔 

$config['index_page'] = 'index.php';

로 php 죽이기가 안되어 있는데 어떻게 된거죠?

kaido / 2016/07/13 15:27:29 / 추천 0

@학학이

링크 드린것을 확인해 보세요.

 

인덱스를 죽이시려면 서버 설정에서는 3가지가 되어야 합니다.

rewrite_mode 가 설정 되어야 하고, .htaccess 파일이 설정 되어야 합니다.

그리고 접근 권한이 Alloverride All 로 설정 되어야 합니다. 

학학이 / 2016/07/13 15:54:38 / 추천 0

네 확인하고 로컬에서도 php 죽이기 하려고 받아온 서버보니 php 죽이기가 안 되어있는

index.php 없이 들어가집니다.

 

만약 저 3가지가 안되어 있으면 php 죽이기가 안되어있는거라고 볼수 있죠?

받아온 소스코드엔 

index_page 에 'index.php'가 들어가 있고 

해당 서버에 .htaccess가 없는데 index.php 없어도 됩니다.

 

왜 이런 경우가 생기는거죠?

kaido / 2016/07/13 16:01:14 / 추천 1

혹시 그서버 ngnix 아닌가요?

ngnix 는 조금 다른 방법을 사용 하는 걸로 압니다.

 

혹은 일반적이지 않은 방법으로 없애고 있을 수도 있습니다.

이런건 해당 서버마다 다른지라 딱히 대답해 드릴 수 없는 부분입니다.

제가 텔레파시 능력이 있는 것도 아니고...

 

중요한것은 그 서버와 동일하게 서버 셋팅이 불가능 하시다면,

보편적인 방법으로 셋팅을 하고 테스트 환경을 완성 하는게 우선 과제 아닐까요?

학학이 / 2016/07/13 16:35:53 / 추천 0

apache를 쓰고 있는데 일단 로컬 환경에 맞춰서 테스트 해봐야겠네요 ㅎㅎ

감사합니다.

쌈닭 / 2016/07/15 15:18:53 / 추천 0

.htaccess 파일은

ls -al

명령어로 확인해 보시구요.

$config['index_page'] = 'index.php'

이 부분은 CI 함수(?) 중에 CI 구조에 맞게 주소(?)를 생성해 줄 때

추가해주는 부분일 겁니다...아마도...

'index.php' 로 지정 되어 있으면 'index.php/foo/bar'

공백이면 'foo/bar'

'baz로 지정하면 'baz/foo/bar'