728x90

CodeIgniter를 하면서 index.php를 항상적어야 하는게 눈에 걸렸다.

다행히도 이를 제거하는 법을 apache가 제공해준다.

우리는 이를 이용해서 이 index.php를 지워보자.



일단 apache 경로의 conf에 httpd.conf를 열어준다.



그 다음 AllowOverride를 All로 바꿔준다.

default는 none으로 되어있다.



또한 rewrite_module부분의 주석을 풀어준다.

여기서 이 경로에서 index.php를 지우기위해서 rewrite_module이라는게 필요한데 보통은 disable되어있다.

이를 enable해주려면 a2enmod라는걸 사용해야한다.

리눅스에서는 그냥 쓰면 되는데 윈도우에서는 저 명령어가 없다.

따라서 저걸 사용해주는 배치파일이 필요한데 다행히도 누군가 만들어 놨다.



https://github.com/enderandpeter/win-a2enmod

위에 가서 클로닝하자.



압축을 풀면 setup파일이 있는데 그것을 실행한다음에 해당경로에 있는 a2enmod를 이용한다.


.\a2enmod rewrite


그러면 enalbed됬다고 표시가된다.



이제 apache를 재시작해준다.

이제 아파치에서의 설정은 끝났다.

나머지는 codeigniter단에서 해준다.


$config['index_page'] = '';

application/config/config.php의 index_page를 빈문자열로 바꾼다.


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond $1 !^(index\.php)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ CI/index.php/$1 [L]
</IfModule>

최상위 경로에 .htaccess 파일을 만들고 위와 같이 입력한다.

여기서 CI부분은 만약 .htaccess가 위치한곳이 아파치에서 document root면 CI부분을 비워둔다.

그게 아니라면 CI부분에 해당파일의 이름을 적는다.



이제 해당 경로에서 index.php를 지웠다.



+ Recent posts