base_url

//$config['base_url'] = '';

$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
$config['base_url'] .= "://" . $_SERVER['HTTP_HOST'];
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']), "", $_SERVER['SCRIPT_NAME']);

이 방법은 가끔 어떤 경우에는 통하지 않는 경우가 있으니 주의해서 사용합니다.

 

index_page

$config['index_page'] = '';

주소에서 index.php를 삭제하려면 공백으로 두면 됩니다.

 

uri_protocol

  • 3.X 버전
$config['uri_protocol'] = 'REQUEST_URI';
  • 2.X 버전
$config['uri_protocol'] = 'AUTO';

위처럼 설정하면 대부분 가능합니다. 주석을 살펴보면 약 세 가지의 방법이 있습니다. 그 중 대표적인 두 가지는 아래와 같습니다.

  • REQUEST_URI : 세그먼트 주소방식
    ex) http://example.com/controller/method/val
  • QUERY_STRING : 쿼리스트링 혼용 방식
    ex) http://example.com/controller/method/?val=2

 

url_suffix

$config['url_suffix'] = '';

주소 맨 끝에 접미사를 붙여서 바꿔줍니다.

ex) [html라고 쓴 경우] http://example.com/controller/method/val => http://example.com/controller/method/val.html

 

language

$config['language'] = 'english';

다국어 설정 시 편한 부분

 

charset

$config['charset'] = 'UTF-8';

요즘은 UTF-8을 주로 사용하니 가능하면 바꾸지 않는 것이 좋습니다.

 

enable_hooks

$config['enable_hooks'] = FALSE;

후킹을 사용하려면 켜주어야 합니다.

 

subclass_prefix

$config['subclass_prefix'] = 'MY_';

코어를 대체하여 새로 만들거나 기능을 추가하거나 할 때 선언하는 접두어입니다.

여기에 선언한 접두어대로 파일을 만들어야 작동합니다.

https://codeigniter-kr.org/user_guide/general/core_classes.html

https://codeigniter-kr.org/user_guide/general/creating_libraries.html

 

permitted_uri_chars

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
//$config['permitted_uri_chars'] = '가-힣a-z 0-9~%.:_\-';

주소에 사용할 수 있는 문자 제한 부분

 

예전 주소 방식들

$config['allow_get_array'] = TRUE;
$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';
$config['directory_trigger'] = 'd';

enable_query_strings 를 TRUE로 바꾸면 

http://example.com/index.php?c=controller&m=method&d=directory 같은 형태로 사용 가능합니다.

 

log_threshold

$config['log_threshold'] = 1;

메세지 종류는 아래와 같습니다.

  • 0: 로그 기능 해제
  • 1: PHP 오류를 포함한 오류 메시지
  • 2: 디버그 메세지
  • 3: 정보 메세지
  • 4: 모든 메세지

DB 관련 오류인 경우 빈화면만 나오고 아무런 오류를 출력하지 않는 경우가 나온다고 하는데 그럴 때는 application/logs 디렉토리의 로그를 확인합니다.

 

개발 시에는 4로, 서비스에는 1로 설정합니다. 4로 할 경우 로그의 양이 상당할 수 있으므로 주의합니다.

 

log_path

$config['log_path'] = '';

로그 디렉토리입니다. 기본 경로는 application/logs

 

log_date_format

$config['log_date_format'] = 'Y-m-d H:i:s';

로그 날짜 형식

 

cache_path

$config['cache_path'] = '';

캐시 디렉토리. 기본 경로는 application/cache

 

encryption_key

$config['encryption_key'] = '';

Encryption, Session 라이브러리에서 암호화의 경우 필요한 암호화키

넣지 않고 암호화를 하게 되면 에러가 나니 아무 키나 넣으면 됩니다.

 

세션 관련

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
  • sess_driver - 저장소 드라이브(files, database, redis, memcached)
  • sess_cookie_name - PC에 저장되는 쿠키명
  • sess_expiration - 세션 만료 시간
  • sess_match_ip - 세션 비교 시 ip까지 매칭할지에 대한 식별 강화
  • sess_time_to_update - 세션 업데이트 주기, 초(s) 단위

 

쿠키 관련

$config['cookie_prefix'] = '';
$config['cookie_domain'] = '';
$config['cookie_path'] = '/';
$config['cookie_secure'] = FALSE;
$config['cookie_httponly']  = FALSE;

cookie_domain 의 경우 '.aaa.com'으로 설정하면 a.aaa.com www.aaa.com 모두 동일 도메인으로 인식합니다. 

 

global_xss_filtering

$config['global_xss_filtering'] = FALSE;

 

CSRF 공격 관련

$config['csrf_protection'] = FALSE;
$config['csrf_token_name'] = 'csrf_test_name';
$config['csrf_cookie_name'] = 'csrf_cookie_name';
$config['csrf_expire'] = 7200;
$config['csrf_regenerate'] = TRUE;
$config['csrf_exclude_uris'] = array();

 

compress_output

$config['compress_output'] = FALSE;

 

time_reference

$config['time_reference'] = 'local';

 

※참고 - http://www.codeigniter-kr.org/bbs/view/lecture?idx=7070