CI 묻고 답하기

제목 CI index.php 문제
글쓴이 학학이 작성시각 2016/07/15 11:11:43
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 15875   RSS

비슷한 문제로 질문한 적이 있습니다.

서버에 있는 코드르 로컬환경에서 테스트하기 위해 가져와서 실행하는데

분명 서버에는 기본적인 .htaccess 로 하는 index.php 죽이기가 안되어 있습니다.

 

aa.php 라는 코드에

 

<iframe src="_ajax/info" ...........

라는 코드가 404 에러로 나와서 

 

<iframe src="index.php/_ajax/info"

이와 같이 변경하면 들어가집니다.

 

해결책이 아닌데 일단 테스트를 위해 임시방편으로 썼는데

ajax call 하는 부분 때문에 문제입니다.

	$.ajax({
			data: { 'id' : 1},
			url: '/_ajax/info',

하는 부분에선 index.php/_ajax/info를 붙이면

 

http://127.0.0.1/index.php/home/index.php/_ajax/info 를 호출합니다. 

/home 은 현재 보고 있는 페이지 경로입니다.

 

index.php 죽이기가 보편적인 방법말고 서버 환경설정으로 죽이는 방법이 따로 있나요?

 

기존 코드 작성자분이 없어서 혼자 이해하려니 힘드네요ㅠㅠ

 

 다음글 초보적인 질문좀 ... (2)
 이전글 CI curl curl_init() 에러 (1)

댓글

한대승(불의회상) / 2016/07/15 11:46:38 / 추천 1

운영환경이 index 죽이기가 되어 있으면 개발환경도 운영환경과 같이 맞추어 주는게 좋습니다.

너무 어렵게 생각하지 마시고 아파치라면 아래 URL 대로 해보세요.

http://cikorea.net/bbs/view/lecture?idx=7130&page=1&view_category=&lists_style=

학학이 / 2016/07/15 12:39:31 / 추천 0

운영환경에는 기존의 알려진 index.php 죽이기가 안 되어있는것 같습니다.

운영서버는 CentOS고

/home/htdocs/server/ 에 CI 코드가 있습니다.

server/ 아래에는 .htaccess 파일도 없어서 index.php 죽이기가 안되어 있다고 생각하는데

aaa.com 치면 default_page를 부르네요. 

서버에 기본 방법으로 index.php 죽이기가 되어있다면 따라하면 될것 같은데

그렇지 않아 서버와 로컬환경이 꼬이고 있네요..

 

또한 config.php

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

로 설정되어 있어 index.php 죽이기 안되어 있다고 생각합니다.

 

 

추가적으로

제가 알고 있기엔 httpd.conf에 DocumentRoot "/var/www/html" 로 명시되어 

해당 경로 아래에 CI 코드를 넣는게 맞다고 생각하는데

서버엔 /home/htdocs/server/ 아래에 있네요?

httpd.conf 그 어디에도 저 경로 명시되어 있지 않습니다.

ㅇㅓ떻게 저 위치의 CI를 찾아간 걸까요?,,,

 

학학이 / 2016/07/15 13:56:46 / 추천 0

추가적으로

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

이라는 코드가 있습니다. 이게 뭔가 해결의 열쇠가 될것같은데.. ㅠㅠ

kaido / 2016/07/18 08:54:51 / 추천 0

@학학이

저번에도 질문 하시더니, 결국 미궁에 빠지셨나 보군요. 

일단 라우터하고는 관련없습니다. 해당 기능은 아무런 컨트롤러명을 치지 않으면 home 컨트롤러를 부른다는 의미입니다.

아파치 설정에서 웹 디렉토리 설정이 안되어 있으면 절대로 접근 할 수 없습니다.

분명히 /home/htdocs/server/ 를 명시하는 부분이 있을 것입니다.

 루트 디렉토리가 있는데, 다른 데서 파일을 호출 한다면 가상호스트 설정을 잡아 놓은것입니다. 

서버 설정은 서버마다 다르기에 이거다 라고는 말씀드립기 어렵고, 절대로 이건 아니다. 라는 가정을 세우고 하나씩 찾아보세요.

 

더불어서 개발 환경도 전혀 지장이 없다고 생각 됩니다.

이유 1. 로컬에서 평범하게 인덱스 죽이기를 해서 테스트 가능 하다.

이유 2. 로컬에서 작업한 파일을 /home/htdocs/server/ 에 올리기만 하면 된다. [어떤 이유로 인덱스 죽이기가 되어있다고 하니]

 

어떤 문제가 있는 것이죠?

 

학학이 / 2016/08/26 15:20:39 / 추천 0

@kaido

예전 글 보던중 제가 답은 안하고 지나간 부분이 있었네요

 

해결책은 예전에 찾았지만

apache vhost에서

 

 RewriteRule ^(.*)$ /index.php/$1 [L] 요놈이 문제였네요.

 

감사합니다.