강좌게시판

제목 서브 디렉토리 index.php 죽이기
글쓴이 한대승(불의회상) 작성시각 2015/11/23 09:33:51
댓글 : 5 추천 : 2 스크랩 : 2 조회수 : 26596   RSS
한대승(불의회상)

코드이그나이터 프레임워크를 사용하게 되면 index.php 죽이기가 가장 큰 허들이 됩니다.하지만 이 허들은 반드시 뛰어 넘어야 하는데 아래 예처럼 여러모로 보기 좋기 때문이죠.

ex>

적용 전 : mydomain.com/index.php/welcome

적용 후 : mydomain.com/welcome

 

메인에서 index.php 를 죽이는 방법에 대해서는 웅파님이 잘 정리(요기)해 두셔서 별다른 질문이 없는데 최근 서브 디렉토리에 코드이그나이터를 설치하시고 index.php 죽이는 방법에 대해 질문이 많이 올라 오는군요.

제가 사용하는 방법을 정리해 두도록 하겠습니다.

 

* 실행환경 : 아파치 + mod_rewirte

* 설정방법

  1. 서브 디렉토리를 하나 만듭니다. (ex: sub)
  2. 코드이그나이터를 설치 합니다.
  3. 접속 테스트를 합니다. (ex: mydomain.com/sub/index.php/welcome)
  4. 아래 내용으로 .htaccess 파일을 생성 합니다.
  5. RewriteEngine On
    
    RewriteCond $1 !^(index\.php)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    
    RewriteRule ^(.*)$ index.php/$1 [L]
  6. 접속 테스트를 합니다. (ex: mydomain.com/sub/welcome)

하나의 도메인에 여러개의 sub 폴더를 생성하여 운용 가능 하고, 서브 디렉토리뿐만 아니라 메인에 설정하여도 잘 동작 합니다.

 

Ps. 아파치, mod_rewrite 모듈이 설치된 특정 웹호스팅 상황에서 index.php 죽이기가 잘 되지 않는 경우가 있는데 아부아카님 께서 관련하여 해결 정보를 제공 하셔서 추가 합니다.

위의 설정으로 index.php 죽이기가 잘 안되시는 분은 아래 내용으로 시도하여 보시기 바랍니다.

RewriteEngine on

RewriteCond $1 !^(index\.php)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?/$1 [QSA,L]

좋은 정보 제공하여 주신 "아브아카"님께 감사 드립니다.

 다음글 일반 PHP 프로젝트에 CI 적용하기 (10)
 이전글 queue 배치 작업 (1)

댓글

모아모아 / 2015/11/24 14:54:46 / 추천 0
정말 쉽게 처리되네요. 로컬에 저장해 놓고 항상 참조하겠습니다.
감사합니다.
아브아카 / 2015/12/10 16:57:01 / 추천 0

QSA 문구가 무슨 역활인지 모르지만 추가하신 내용으로 htaccess 올려보니 잘 작동합니다. 좋은 강좌 감사합니다.

한대승(불의회상) / 2015/12/10 17:02:27 / 추천 0

@아브아카 핵심은 QSA 가 아니라 index.php? 인것 같습니다. ^^

람이 / 2016/02/16 08:35:07 / 추천 0
아직 사용해 보지는 않았지만, 좋은 정보네요... 기억해 두겠습니다.
푸르르른 / 2017/02/06 14:00:43 / 추천 0
감사합니다! 간단명료하네요!