CodeIgniter 의 URL
CodeIgniter 의 디폴트의URL 은 검색엔진이나 사람도 알기 쉽게 설계되었습니다. 동적 시스템의 대명사라고 할 수 있는 일반적인"query string" 어프로치를 채용하고, 다음과 같은 세그먼트(segment) 베이스 어프로치 를 채용하고 있습니다:
www.your-site.com/news/article/my_article
Note: 쿼리 문자열(query string)을 뒤에 붙여서 사용할 수도 있습니다.
URI 세그먼트(segment)
Model-View-Controller 어프로치에 따르면 URL 안에서는, 세그먼트(segment)는 대체로 다음과 같이 표현됩니다:
www.your-site.com/class/function/ID
- 최초의 세그먼트(segment)는 호출해야 할 콘트롤러 클래스를 나타냅니다.
- 2 번째의 세그먼트(segment)는, 클래스가 불러오는 함수 또는 메소드를 나타냅니다.
- 3번째 이후의 세그먼트(segment)는, 콘트롤러에게 건네지는 request , ID 등의 값을 나타냅니다.
URI 클래스 와 URL 헬프(helpers) 에는URI 데이터를 간단하게 취급하기 위한 메소드가 준비되어 있습니다.게다가 URI루팅 기능을 이용하면, 보다 유연하게URL 을 재매핑 할 수 있습니다.
index.php 파일을 URL 로부터 제거한다
초기 상태에서는 index.php 파일이 URL 의 안에 포함되는 모습이 되어 있습니다:
www.your-site.com/index.php/news/article/my_article
이것은 .htaccess 파일을 사용하면, 간단하게 이것을 없앨 수 있습니다. 특정의 항목을 제외한 모든 것이 리디렉트 되도록하는 룰을 이용한 예입니다:
RewriteEngine on
RewriteCond $1 !^(index.php|images|robots.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
위의 예에서는,index.php ,images , 및 robots.txt 이외의 모든HTTP 리퀘스트는 index.php 파일에의 리퀘스트로서 취급됩니다.
URL 스픽스(suffix)의 추가
config/config.php 파일 안에서 생성되는 모든URL 에 부가되는 스픽스(접미말)를 지정할 수 있습니다. 예를 들어,URL 이 다음과 같은 것이었다고 하면:
www.your-site.com/index.php/products/view/shoes
무엇으로 되어 있는지 종류를 나타내기 위해서 옵션으로.html 등의 스픽스를 추가할 수 있습니다:
www.your-site.com/index.php/products/view/shoes.html
쿼리 문자열의 유효화
URL 에 다음과 같은 쿼리 문자열을 사용하고 싶을때가 있을 겁니다. :
index.php?c=products&m=view&id=345
바로,application/config.php 파일의 설정으로 가능하게 할 수 있습니다. 설정 파일을 열면 다음과 같은 항목이 있습니다. :
$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';
"enable_query_strings" 를 TRUE 로 변경하면, 이 기능이 가능하게 됩니다. 다음 예와 같이, 콘트롤러와 메소드를 호출하기 위해서 "trigger" 로 지정한 어구[ 역주:이 예에서는, 「c 」와「m 」.위의 설정의$config['controller_trigger'] 에서 지정해 있는 어구 ])를 사용해 콘트롤러와 메소드에 액세스 합니다:
index.php?c=controller&m=method
Please note: 쿼리 문자열을 사용하고 있는 경우는, 세그먼트(segment) 베이스의 URL의 기능과 helpers를 이용한 URL 생성방법을 이용할 수 없기 때문에 URL 을 스스로 만들어 줄 필요가 있습니다
'FrameWork > CodeIgniter' 카테고리의 다른 글
CodeIgniter 에서 PEAR 라이브러리 사용하기 (0) | 2008.06.30 |
---|---|
CodeIgniter에서 controller와 method명으로 php 언어 구조명 쓰기 (0) | 2008.06.30 |
CodeIgniter QnA #1 - scaffolding이 안될 때 (0) | 2008.06.30 |
CodeIgniter 인스톨 (0) | 2008.06.30 |
Session 라이브러리 주의 사항 (0) | 2008.06.30 |