CI 묻고 답하기

제목 URL 규칙 관련해서 질문 드립니다.
글쓴이 egoing 작성시각 2013/05/01 09:14:40
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 12947   RSS
CI에서는 경로에 index.php가 들어가잖아요?
예를들어서 opentutorials.org/index.php/course/1 이런식으로요.
여기서 index.php는 제가 보기에는 디렉토리인 것 같은데 
웹서버에서 저것을 디렉토리가 아니라 실행가능한 php 스크립트로 인식하고 index.php 파일을 실행하는 것은 
어떤 규칙 혹은 원리에서 그렇게 되는걸까요?


 다음글 Unable to connect to your data... (4)
 이전글 view에서 foreach문으로 루프 돌릴시 객체만 ... (6)

댓글

변종원(웅파) / 2013/05/01 10:16:23 / 추천 0
도메인과 디렉토리를 연결하고 그 디렉토리에서 제일 처음 실행할 파일을 지정하는 것은
웹서버가 담당합니다. 아파치나 nginx, 톰캣 같은..

a.com 도메인을 치면 /home/a 라는 디렉토리의 index.php 또는 index.html을 실행하라고 연결을 하죠.
(ci에서 아무런 컨트롤러와 메소드를 입력하지 않아도 특정 컨트롤러가 실행되는 것처럼요)

질문하신 영역은 웹서버단의 처리이고 index.php로 들어온 이후에는 php, 즉 개발자의 영역이 되는겁니다.
milosz / 2013/05/01 11:01:25 / 추천 0
/index.php/course/1 식으로 입력했을 때 웹서버에서는 index.php가 실제로 존재하는 파일인 경우
그 이후의 경로를 $_SERVER['PATH_INFO'] 에 담아 넘겨줍니다.
(만약 index.php가 파일명이 아니고 폴더명이면 해당 경로를 따라갈겁니다.)
 
Codeigniter의 system/core/URI.php, system/core/Router.php를 확인해보면
해당 $_SERVER['PATH_INFO'] 값을 통해 각 Controller, Method등을 처리하는걸 볼 수 있습니다.
(CI에서는 Router를 통해 URI를 재정의 할 수 있기 때문에 코어에서 찾아보기에 복잡할 수 있습니다.)
egoing / 2013/05/01 13:33:11 / 추천 0
 두분 고맙습니다. ^^