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
'프로그래밍 > Codeigniter' 카테고리의 다른 글
[PHP] Codeigniter 에서 Helper 를 활용한 asset 폴더 생성 (0) | 2016.08.30 |
---|---|
[PHP] 코드이그나이터(CI) 에서 index.php 없애기 (0) | 2016.08.28 |