CI 묻고 답하기

제목 서브디렉토리가 루트일시 경로 문제
글쓴이 DevCIer 작성시각 2011/08/11 12:19:41
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 20823   RSS
 안녕하세요.
 
기존 php 날코딩을 ci로 변환중입니다.
 
검색도 해보고 하는데 기존 ajax 호출시에 찾을 수 없다고 나와서..
 
제 프로젝트 구조는
 
/site
  |---- application
                |-------- controller
                                |---- main.php
                                |---- ajax.php
                |-------- views
                                |---- layout
                                             |---- login.php <==== login 페이지 화면이면서 ajax 코드 들어가 있는 부분.
                                             |---- logincheck.php <== ajax에서 호출 되는 페이지
  |---- css
  |---- images
  |---- scripts
  |---- system
 
입니다.
 
ajax나 혹은 기타 컨트롤러를 생성하고
 
호출 할려는데 아래 같이 ajax 같은 경우는
 
login.php의 자바스크립트에서
function login_check()
{
 $.ajax({
  type: "POST",
  url: "/ajax/", <=== 
               ....
         })
}
<img onclick = "login_check()">
 
요렇게 호출을 합니다.(포럼의 action의 url경로 참조)
 
근데 이렇게 하면 /ajax/를 찾을 수 없다고 나옵니다.
 
주소창을 확인해 보면 localhost/ajax/로 찍히는데(당연하겠지만)
 
프로젝트 폴더가 실은 하위 폴더안에 있습니다.
 
예를 들어 컨트롤러 실제 풀 경로는
 
d:\xampp\htdocs\site\application\controller\ajax겠지요.
site라는 하위 폴더 안이 루트가 되는 셈인데
링크 주소를 /site/ajax/로 하면 해결이 되는데
포럼 소스의 action에서 링크 달아주는 부분을 보면 그냥 바로 /ajax/로 해놧는데(아마 포럼 소스는 루트 경로가 도큐먼트 루트 경로라서 그럴거라 생각합니다.)
 
제 httpd.conf에 도큐먼트 루트는 DocumentRoot "/Xampp/htdocs"로 잡혀있습니다.
 
 
하위 폴더에서 바로 /ajax/식으로 호출 하는 방법은 없나요?
물론 /site/ajax/로 호출하면 해결이 되는 문제입니다만.
 
포럼 소스처럼 앞쪽 군더더기(?) 없이 바로 호출 하고 싶습니다.
 
검색을 해보니 Rewrite /site/로 하면 된다고 하는데 그렇게도 해봣는데 안되네요
저 주소대로 하면 localhost/ajax/가 되어서 못찾는게 당연한거 같긴 한데
실제로 main 컨트롤러는 localhost/site/를 하면 호출 되고 자동으로 서브 디렉토리 경로가 잡혀서 /ajax/만으로 되게 하는 방법이 없는지.
 
즉 url링크에 /ajax/식으로 쓰고 싶습니다.
실제론 서브 폴더기 때문에 localhost/site/ajax/가 맞지만
ci에서 설정 해줄건 아닌거 같은데
 
참고로 index.php를 빼기 위해서 
config.php
 - $config['index_page'] = '';
 - $config['uri_protocol'] = 'REQUEST_URI';
 
/site/에 .htaccess는
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
이 상태 입니다.  이거완 관련이 없는거 같은데..
 
 
초보라서 죄송합니다.
 
혹시 하위 폴더를 루트로 쓰고 계신분 비슷한 분 계시면 답변좀 부탁드려요.
 
경로가 젤 어렵네요.
 
 
 
 다음글 로그파일 남기기.. (3)
 이전글 jquery ajax 사용시 not fount 에러 (2)

댓글

DevCIer / 2011/08/11 14:35:30 / 추천 0
 일단은 테스트 진행을 해야 해서 httpd.conf의 DocumentRoot "/Xampp/htdocs/" ==> DocumentRoot "/Xampp/htdocs/site"
로 바꾸고 ci에서 링크 경로는 포럼처럼 /ajax 형식으로 쓰고 있습니다만 하위 폴더일 때 난감하네요.
방법이 없을까요