코드이그나이터(CodeIgniter)에서 URL 규칙은 다음과 같다. (3.X버전, 2.X버전)

http://example.com/[controller-class]/[controller-method]/[arguments]

사실 위의 경우처럼 하려면 중간에 index.php가 들어가야 하는데 보통 주소를 간단하게 하기 위해서 index.php 를 포함시키지 않는다.

이를 위해서는 아래의 두 가지 중 하나를 진행해야 한다.

 

1. config.php 설정

index_page 항목에서 index.php 값을 공백으로 변경한다.

/*

|--------------------------------------------------------------------------
| Index File
|--------------------------------------------------------------------------
|
| Typically this will be your index.php file, unless you've renamed it to
| something else. If you are using mod_rewrite to remove the page set this
| variable so that it is blank.
|
*/
$config['index_page'] = 'index.php';

 

2. .htaccess 파일 설정

mod_rewrite 기능이 있는 경우

<IfModule mod_rewrite.c>
  RewriteEngine On
  # RewriteBase /
  RewriteCond $1 !^(index\.php|images|captcha|data|include|uploads|robots\.txt)
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ ./index.php/$1 [L]
  # 이 파일이 있는 곳으로부터 하위 디렉토리인 경우 아래와 같이 폴더 경로 설정
  # RewriteRule ^(.*)$ ./a/b/c/d/e/f/goon/index.php/$1 [L]
</IfModule>