얼마전부터 PHP를 공부하면서 코드이그나이터(CodeIgniter)라는 프레임워크를 사용하게 되었다.
역시 프레임워크는 편하다. 게시판 페이징처리, 이메일, 세션처리, 폼검증 등 직접 코딩을 하려면 피곤한 기능들을 편하게 사용할 수 있다.
그런데 코드이그나이터(CodeIgniter)는 한 가지 불편한 점이 있는데 바로 index.php 경로가 항상 나온다는 것이다.
예를들어, blog.junholee.me 이라는 도메인에 home 이라는 경로를 추가하면 blog.junholee.me/home 이라고 나오는 것이 아니라 blog.junholee.me/index.php/home 이라고 나온다. 즉, index.php 파일의 경로가 항상 나오기 때문에 URL이 직관적이지 않다. 그래서 코드이그나이터(CodeIgniter) 한국 커뮤니티를 찾아보니 해결책을 쉽게 찾을 수 있었다.(코드이그나이터는 한국커뮤니티가 나름 활동적이다.)
구체적인 방법은 아래 url을 확인해보면 알 수 있다.
일반적으로 아래 url에 나온 방법을 사용하면 대부분 해결이 된다.
http://codeigniter-kr.org/lecture/view/213/page/1/q/index.phpall
참고로 codeigniter 3.0 버전에서 .htaccess 파일을 추가할 때는 아래 내용을 참고해야 한다.
http://www.codeigniter.com/userguide3/general/urls.html
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]
그런데 나는 아무리 해도 안 되는 것이 아닌가!
(참고로 나는 웹호스팅이 아니라 AWS의 EC2 서비스에 LAMP를 설치하여 서버를 구성했다. 왜냐하면 AWS는 1년이 무료이므로..ㅋㅋㅋ 서버운영 경험을 쌓기에 좋은 듯 하다.)
그래서 구글링으로 검색을 하여 10시간 정도를 헤매다가 겨우 해결책을 찾아냈다.
위에서 언급한 페이지에서 하는대로 했는데도 index.php 을 없애는데 실패했다면 아래 내용도 확인을 해보면 된다.
아래 동영상을 보면 해결책을 알 수 있는데 6분 25초 정도에 해결책이 나온다.
물론 영어라서 이해하는데 어려움이 있기는 하다.
그래서 친절하게 설명을 준비했다.
1) httpd.conf 파일을 연다.(이 방법을 수행하는 당신이라면 아마 httpd.conf 파일쯤은 열어보고 수정도 해봤을 것이다. 왜냐하면 위에서 언급한 내용들도 이 파일에 대한 내용이기 때문이다.)
CentOS를 쓰고 있는 나의 경우 etc/httpd/httpd.conf 경로에 있는 파일이다.
2) 아래 이미지에 있는 부분을 찾는다.
아마 아래 표시한 부분이 AllowOverride None 으로 되어 있을텐데 이것을 아래와 같이
AllowOverride All로 수정해 주면 된다.
3) 저장내용을 저장하고 닫는다.
4) 아파치를 다시 시작하면 끝!!
엄청 간단하지 않은가?
나는 이것 때문에 10시간 정도를 삽질했는데 여러분은 이 포스팅을 보고 빠르게 해결하기 바란다.
3 comments
감사합니다. 덕분에 편하게 해결했습니다
도움되셨다니 다행이네요 ㅎㅎㅎ 즐거운 코딩하시기 바랍니다.