[快快樂樂教學] Codeigniter 移除index.php (專案篇)

又到了快快樂樂學習教學文,本篇將繼續介紹Codeigniter。

快快樂樂刪除CodeIgniter index.php講到如何移除討人厭的index.php,而這一篇文章將帶領大家如何將CI的system和application(專案),做一個抽離的部份。

平台簡介:
windows 7 + appserv
**目標:**
將下載下來的codeigniter 資料夾,與預設system的application抽離。
**預先做好的設定:**
打開apache rewrite,將.htaccess準備好,不知道怎麼作請[參考文章](http://clonn.blogspot.com/2010/08/codeigniter-urlindexphp.html)
**教學步驟開始:**
將CodeIgniter_1.7.2,複製到C:AppServ 底下,結果如下圖:
[![](http://2.bp.blogspot.com/_vekjcQZ8YNQ/TOVhDZllF6I/AAAAAAAAKkA/TJ1O_Zw73vg/s320/2010-11-19_012254.png)](http://2.bp.blogspot.com/_vekjcQZ8YNQ/TOVhDZllF6I/AAAAAAAAKkA/TJ1O_Zw73vg/s1600/2010-11-19_012254.png)
接著進入到c:AppServCodeIgniter_1.7.2system底下將application救出來(複製、剪下),把整個資料夾貼到c:AppServwww 底下。
[![](http://2.bp.blogspot.com/_vekjcQZ8YNQ/TOVhvZKZnkI/AAAAAAAAKkE/IXOYjY0mdlQ/s320/2010-11-19_012617.jpg)](http://2.bp.blogspot.com/_vekjcQZ8YNQ/TOVhvZKZnkI/AAAAAAAAKkE/IXOYjY0mdlQ/s1600/2010-11-19_012617.jpg)
回到c:AppServCodeIgniter_1.7.2裡面的index.php檔案,複製到c:AppServwwwapplication底下。
打開c:AppServwwwapplicationindex.php,別開錯另外一個html,變動參數如下。
`$system_folder = "c:/AppServ/CodeIgniter_1.7.2/system";



$application_folder = "c:/AppServ/www/application";

`
接著測試網站是否正常,應該會看到畫面如下。
[![](http://4.bp.blogspot.com/_vekjcQZ8YNQ/TOVjfu3rEdI/AAAAAAAAKkI/a-cc2DzSz24/s320/2010-11-19_013345.jpg)](http://4.bp.blogspot.com/_vekjcQZ8YNQ/TOVjfu3rEdI/AAAAAAAAKkI/a-cc2DzSz24/s1600/2010-11-19_013345.jpg)
最後還剩下一個問題,在application裡面要加上其他的controller似乎index.php的路徑問題又出現了。 接著先把剛剛的.htaccess檔案複製到c:AppServwwwapplication底下,開啟檔案修改。 `

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

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



` 重點在於紅字的部份,其他跟上一篇文章均相同(請確認Apache rewrite已正確啟用) 最後測試一下是否真的能夠運作,新增一組controller、view Controller: 儲存路徑 c:AppServwwwapplicationcontrollersphpinfo.php `


class Phpinfo extends Controller {



function __construct()

{

parent::Controller();

}



function index()

{

$this->load->view('phpinfo');

}

}

` View : 儲存路徑 c:AppServwwwapplicationviewsphpinfo.php `
echo phpinfo();

?>

` 接著測試看看是否可以正常運作。 [http://127.0.0.1/application/index.php?/phpinfo](http://127.0.0.1/application/index.php?/phpinfo) [http://127.0.0.1/application/phpinfo](http://127.0.0.1/application/phpinfo) 都會看到相同結果,頁面應該如下圖。
[![](http://2.bp.blogspot.com/_vekjcQZ8YNQ/TOVnGbZ2mRI/AAAAAAAAKkM/VoKwU7m44z0/s320/2010-11-19_014911.jpg)](http://2.bp.blogspot.com/_vekjcQZ8YNQ/TOVnGbZ2mRI/AAAAAAAAKkM/VoKwU7m44z0/s1600/2010-11-19_014911.jpg)
結論: 這樣子作有什麼好處呢!? 第一: 不需要將整個CI資料夾移到public目錄中,減少主要結構目錄被破壞的可能性。 第二: 當系統需要升級時候直接修改application中index.php參數即可。 第三: 整個目錄結構會更加清晰,核心和專案可以完整分開。 如果大家對於這樣子架構有任何意見,歡迎一起討論。

CaesarChi

Web developer, focus on website fullstack, special JavaScript, and love sharing developing experience and communicate with developers. http://about.me/clonn