CI URL 규칙 CodeIgniter URLs

CodeIgniter 에서 생성한 URL 은 깔끔하고 검색엔진에서 색인되기 좋은 구조입니다. 일반적인 “쿼리스트링(query string)” 기반의 URL 이 아니라 새그먼트 기반(segment-based)의 URL 을 사용합니다:

example.com/news/article/my_article

Note

아래 기술된바와 같이 쿼리스트링(Query string) URL 또한 사용할 수 있습니다(옵션).

URI 새그먼트 URI Segments

URL 새그먼트는 MVC패턴을 기반으로 아래와 같이 표현됩니다:

example.com/class/function/ID
  1. 첫새그먼트는 호출될 컨트롤러 class 를 나타냅니다.
  2. 두 번째 새그먼트는 클래스안의 호출될 function, 혹은 메쏘드를 나타냅니다.
  3. 세 번째 이후는 컨트롤러로 전달될 어떤 변수라도 될 수 있습니다.(예제에서는 ID)

URI 라이브러리(URI Library)URL 헬퍼(URL Helper) 의 함수들을 이용하시면 손쉽게 URI 데이터를 조작하실 수 있습니다. 그리고, URL 은 URI 라우팅 을 이용하시면 좀 더 유연하게 재 매핑될 수 있습니다.

index.php 파일 제거하기 Removing the index.php file

기본적으로 index.php 파일은 URL 에 아래와 같이 포함됩니다:

example.com/index.php/news/article/my_article

Apache 서버에mod_rewrite 가 활성화되어있다면, .htaccess 파일을 규칙에 따라 사용하시면 쉽게 index.php 를 제거하실 수 있습니다. 지정된것이 아니면 모두 리디렉션 하는 “negative” method(제한 메소드)를 아래와 같이 사용하세요:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

위 예제의 설정을 통하여 index.php, images, robots.txt 를 제외한 HTTP 요청은 index.php 파일을 요청한 것으로 취급됩니다.

Note

이 규칙은 일부 서버에서 작동하지 않을 수 있습니다.

Note

위 규칙에서 어떤 assets 를 제외할 수 있는지 확인해야 합니다.

URL 에 접미어 추가하기 Adding a URL Suffix

config/config.php 파일에서 URL 끝에 접미어를 추가하도록 설정할 수 있습니다. 예를 들면, URL 이 아래와 같다면:

example.com/index.php/products/view/shoes

.html, 등의 접미어를 추가하여 일반적인 웹페이지인것 처럼 보이게 할 수 있습니다:

example.com/index.php/products/view/shoes.html

쿼리스트링(Query Strings) 사용하기 Enabling Query Strings

아래와 같이 URL 에서 쿼리스트링을 사용하는게 필요한경우도 있을 것입니다:

index.php?c=products&m=view&id=345

application/config.php 파일에서 아래부분을 찾아보세요. 그러면 이런 아이템들을 config 파일에서 볼 수 있습니다:

$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

Note

쿼리스트링을 이용하시면 URL 헬퍼 ( form 헬퍼와 같이 URLs을 생성하는 헬퍼들) 을 사용하실수 없습니다.