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를 지웠다.
'Usage > PHP' 카테고리의 다른 글
[APM]apache + php에서 css가 적용되지 않을 경우 (0) | 2018.01.07 |
---|---|
[CodeIgniter]CodeIgniter설치하기 (0) | 2018.01.02 |
[APM]PHP사용하기 - mac에서 apm사용하기(5) (0) | 2017.11.29 |
인터프리터 동작시 notice,warning 안나오게 하기. (0) | 2017.11.29 |
[APM]PHP사용하기 - 서버에 php파일 업로드하기(4) (0) | 2017.11.29 |