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 입력시 또한 안됩니다.
무엇이 문제일까요?
헐 혹시 제 서버를 보고 계신가요?
어떻게 바로 해결책이 나오죠? ㅎㅎ
지금 받은 소스에 index.php 죽이기가 되어 있는건가요?
controller 기초를 다시 보고 와야하나요?
추가적으로 src="index.php/mangerhome/apiList" 하면 잘 나오네요
서버에 있는 프로젝트 그대로 복사해서 로컬에서 하는중인데
이건 apache 설정 문제인가요?
네. index 죽이기를 하셔야 합니다.
http://www.codeigniter-kr.org/bbs/view/lecture?idx=7073
초보 분들이 흔히 하는 실수 거든요. index.php 죽이기를 빼먹고 테스트 했을 경우입니다.
다시 질문 드립니다.
현재 CI 기능 개선 중이고 서버에 있는 코드엔
$config['index_page'] = 'index.php';
로 php 죽이기가 안되어 있는데 어떻게 된거죠?
@학학이
링크 드린것을 확인해 보세요.
인덱스를 죽이시려면 서버 설정에서는 3가지가 되어야 합니다.
rewrite_mode 가 설정 되어야 하고, .htaccess 파일이 설정 되어야 합니다.
그리고 접근 권한이 Alloverride All 로 설정 되어야 합니다.
네 확인하고 로컬에서도 php 죽이기 하려고 받아온 서버보니 php 죽이기가 안 되어있는
index.php 없이 들어가집니다.
만약 저 3가지가 안되어 있으면 php 죽이기가 안되어있는거라고 볼수 있죠?
받아온 소스코드엔
index_page 에 'index.php'가 들어가 있고
해당 서버에 .htaccess가 없는데 index.php 없어도 됩니다.
왜 이런 경우가 생기는거죠?
혹시 그서버 ngnix 아닌가요?
ngnix 는 조금 다른 방법을 사용 하는 걸로 압니다.
혹은 일반적이지 않은 방법으로 없애고 있을 수도 있습니다.
이런건 해당 서버마다 다른지라 딱히 대답해 드릴 수 없는 부분입니다.
제가 텔레파시 능력이 있는 것도 아니고...
중요한것은 그 서버와 동일하게 서버 셋팅이 불가능 하시다면,
보편적인 방법으로 셋팅을 하고 테스트 환경을 완성 하는게 우선 과제 아닐까요?
apache를 쓰고 있는데 일단 로컬 환경에 맞춰서 테스트 해봐야겠네요 ㅎㅎ
감사합니다.
.htaccess 파일은
ls -al
명령어로 확인해 보시구요.
$config['index_page'] = 'index.php'
이 부분은 CI 함수(?) 중에 CI 구조에 맞게 주소(?)를 생성해 줄 때
추가해주는 부분일 겁니다...아마도...
'index.php' 로 지정 되어 있으면 'index.php/foo/bar'
공백이면 'foo/bar'
'baz로 지정하면 'baz/foo/bar'
127.0.0.1/index.php/managerhome/apiList
이건 되시나요?