Develop/CodeIgniter

[CodeIgniter]index.php 없애기.

시크라기 2012. 8. 7. 10:45

아파치 vhost 잡아주는 부분에서



    RewriteEngine On

    RewriteCond $1 !^(index\.php|/asset/*|/images/*|/js/*|/css/*|robots\.txt|/favicon\.ico)

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


추가해줄것!

+ mod_rewrite를 해줄경우에 CI에서도 자체적으로 추가해줄 부분이 있음.

system/core/URI.php파일내에서 

 if (strpos($uri, $_SERVER['SCRIPT_NAME']) === 0)
 {
   $uri = substr($uri, strlen($_SERVER['SCRIPT_NAME']));
 }
 elseif (strpos($uri, dirname($_SERVER['SCRIPT_NAME'])) === 0)
 {
   $uri = substr($uri, strlen(dirname($_SERVER['SCRIPT_NAME'])));
 }

위 코드부분에서 $_SERVER['SCRIPT_NAME']을 못찾는 문제 발생.



이경우



 if (!empty($_SERVER['SCRIPT_NAME'])) {
   if (strpos($uri, $_SERVER['SCRIPT_NAME']) === 0)
   {
     $uri = substr($uri, strlen($_SERVER['SCRIPT_NAME']));
   }
   elseif (strpos($uri, dirname($_SERVER['SCRIPT_NAME'])) === 0)
   {
     $uri = substr($uri, strlen(dirname($_SERVER['SCRIPT_NAME'])));
   }
 }

위와같이 수정해주면 정상적으로 동작함.