• 전화하지 마셈
  • hyungseob@ssim.pe.kr
Codeigniter 3.x에서 4.x로 갈아 엎느라 기존 게시판 주소로 접근시 새 주소로 리다이렉션 된다.

Developerment [PHP]

[CI] Codeigniter 4.x에서의 .htaccess로 public/index.php 숨기기

  • 빛그림
  • 1,013
CodeIgniter 4.0 부터는 ZendFramework 처럼 DocumentRoot를 public 디렉토리로 설정해서 써야 하는데 그렇지 않고 통채로 올려 쓸 경우 public/index.php를 숨겨야 할 경우 아래와 같이 하면 된다.


1. 먼저 httpd.conf에 mod_rewrite.so이 로드 되어야 한다.


2. 그리고 해당 웹사이트의 AllowOverride 설정은 All 이어야 한다. 대부분 버추얼호스트를 이용하므로 httpd-vhosts.conf 안에 해당 웹사이트의 설정 안에 AllowOverride All 이라는 구문을 넣어주면 된다. 여러개의 웹사이트를 운영하는 경우가 아니라면 httpd.conf에서 설정하면 된다.


3. application, public, system, tests, docs 등의 디렉토리가 있는 홈디렉토리에서 .htaccess 화일을 생성하고, 아래와 같이 설정한다.
 
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

4. public 디렉토리 안에 .htaccess 화일을 생성하고 아래와 같이 설정한다.
 
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond $1 !^(index\.php)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>    	


이제 public/index.php의 입력 없이도 잘 접속될 것이다.

새댓글 등록