CodeIgniter URL¶
기본적으로 CodeIgniter의 URL은 검색 엔진과 사람 친화적으로 설계되어 있습니다. 동적 시스템과 동의어인 표준 “쿼리 문자열” 방식 대신, CodeIgniter는 세그먼트 기반 방식을 사용합니다:
example.com/news/article/my_article
참고
쿼리 문자열 URL은 아래에 설명된 대로 선택적으로 활성화할 수 있습니다.
URI 세그먼트¶
Model-View-Controller 방식에 따라 URL의 세그먼트는 일반적으로 다음을 나타냅니다:
example.com/class/function/ID
첫 번째 세그먼트는 호출되어야 할 컨트롤러 클래스를 나타냅니다.
두 번째 세그먼트는 호출되어야 할 클래스 함수 또는 메소드를 나타냅니다.
세 번째 및 추가 세그먼트는 컨트롤러에 전달될 ID와 변수를 나타냅니다.
URI 라이브러리 와 URL 헬퍼 에는 URI 데이터를 쉽게 다룰 수 있는 함수가 포함되어 있습니다. 또한 URI 라우팅 기능을 사용하여 URL을 다시 매핑하면 더 많은 유연성을 얻을 수 있습니다.
index.php 파일 제거¶
기본적으로 index.php 파일이 URL에 포함됩니다:
example.com/index.php/news/article/my_article
Apache 서버에 mod_rewrite 가 활성화되어 있다면 .htaccess 파일에 몇 가지 간단한 규칙을 사용하여 이 파일을 쉽게 제거할 수 있습니다. 다음은 지정된 항목을 제외한 모든 것을 리디렉션하는 “부정적” 방법을 사용하는 파일 예시입니다:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
위의 예시에서 기존 디렉터리와 파일에 대한 요청을 제외한 모든 HTTP 요청은 index.php 파일에 대한 요청으로 처리됩니다.
참고
이러한 특정 규칙이 모든 서버 구성에서 작동하지 않을 수 있습니다.
참고
외부에서 접근해야 하는 에셋도 위의 규칙에서 제외해야 합니다.
URL 접미사 추가¶
config/config.php 파일에서 CodeIgniter가 생성하는 모든 URL에 추가될 접미사를 지정할 수 있습니다. 예를 들어, 다음과 같은 URL이 있는 경우:
example.com/index.php/products/view/shoes
.html 과 같은 접미사를 선택적으로 추가하여 페이지가 특정 유형인 것처럼 보이게 할 수 있습니다:
example.com/index.php/products/view/shoes.html
쿼리 문자열 활성화¶
경우에 따라 쿼리 문자열 URL을 선호할 수 있습니다:
index.php?c=products&m=view&id=345
CodeIgniter는 이 기능을 선택적으로 지원하며, application/config.php 파일에서 활성화할 수 있습니다. 설정 파일을 열면 다음 항목이 있습니다:
$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';
“enable_query_strings”를 TRUE로 변경하면 이 기능이 활성화됩니다. 컨트롤러와 함수는 컨트롤러와 메소드를 호출하도록 설정한 “트리거” 단어를 사용하여 접근할 수 있습니다:
index.php?c=controller&m=method
참고
쿼리 문자열을 사용하는 경우 URL 헬퍼(및 일부 폼 헬퍼와 같이 URL을 생성하는 다른 헬퍼)가 세그먼트 기반 URL과 함께 작동하도록 설계되어 있으므로, 이러한 헬퍼를 활용하는 대신 직접 URL을 만들어야 합니다.