CI 에서의 URL 규칙 CodeIgniter URLs
CodeIgniter 에서 생성한 URL 은 깔끔하고 검색엔진에서 색인되기 좋은 구조입니다. 일반적인 쿼리스트링 기반의 URL 이 아니라 세그먼트 기반의 URL 을 사용합니다.
example.com/news/article/my_article
Note: 아래 기술된바와같이 쿼리스트링(Query string) URL 또한 사용할 수 있습니다(옵션).
URI 세그먼트
URL 세그먼트는 MVC패턴을 기반으로 아래와같이 표현됩니다. example.com/class/function/ID
- 첫세그먼트는 호출될 컨트롤러 class 를 나타냅니다.
- 두번째 세그먼트는 클래스안의 호출될 function, 혹은 메쏘드를 나타냅니다.
- 세번째 이후는 컨트롤러로 전달될 어떤 변수라도 될수 있습니다.(예제에서는 ID)
URI 클래스 및 URL 헬퍼 의 함수들을 이용하시면 손쉽게 URI 데이터를 조작하실 수 있습니다.그리고, URL 은 URI Routing 을 이용하시면 좀더 유연하게 재 매핑 될수 있습니다..
index.php 파일 제거하기
기본적으로 index.php 파일은 URL 에 아래와같이 포함됩니다:
example.com/index.php/news/article/my_article
.htaccess 파일을 규칙에 따라 사용하시면 쉽게 index.php 를 제거하실 수있습니다. 지정된것이 아니면 모두 리디렉션 하는 "negative" method(제한 메소드)를 아래와 같이 사용하세요:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
위예제의 설정을 통하여 index.php,이미지, robots.txt 등에대한 HTTP 요청은 index.php 파일을 요청한것으로 취급됩니다.
URL 에 확장자 추가하기
config/config.php 파일에서 URL 끝에 확장자를 추가하도록 설정할수 있습니다
만약 URL 이 아래와 같다면:
example.com/index.php/products/view/shoes
.html 등의 확장자를 추가하여 일반적인 웹페이지인것 처럼 보이게 할수있습니다.:
example.com/index.php/products/view/shoes.html
쿼리스트링(Query Strings) 사용하기
아래와같이 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 로 바꾸면 됩니다. 이때 컨트롤러와 함수는 당신이 설정한 값에 따라서 호출할 수 있습니다(위의 경우 c 는 컨트롤러 호출 m 은 함수 호출):
index.php?c=controller&m=method
Please note: 쿼리스트링을 이용하시면 URL 헬퍼 ( form 헬퍼와 같이 URLs을 생성하는 헬퍼들) 을 사용하실수 없습니다.