제목 | 서브디렉토리가 루트일시 경로 문제 | ||
---|---|---|---|
글쓴이 | DevCIer | 작성시각 | 2011/08/11 12:19:41 |
|
|||
안녕하세요.
기존 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
|
로 바꾸고 ci에서 링크 경로는 포럼처럼 /ajax 형식으로 쓰고 있습니다만 하위 폴더일 때 난감하네요.
방법이 없을까요