Fork me on GitHub

Programming Design Notes

CodeIgniter 隱藏 index.php

| Comments

CodeIgniter 打開 Controller 時 URL 會像以下這樣:
http://ci.ctlok.com/index.php/controller

夾了 index.php 在中間,非常不美觀。

在 Apache Web Server 上可以使用 URL Rewirte 去將 index.php 去除掉,只要將以下 .htaccess 放到CodeIgniter index.php 的所在的目錄便可以。

.htaccess:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
</IfModule>

如果 CodeIgniter index.php 的所在的目錄並不是根目錄,可以修改
RewriteBase /
成為
RewriteBase /foldername

如果有其他目錄不想 Apache 去重寫 URL,例用: js 目錄。可以將
RewriteCond $1 !^(index\.php|images|robots\.txt)
加上 js
RewriteCond $1 !^(index\.php|images|robots\.txt|js)

現在可以以這種形式打開 Controller 了
http://ci.ctlok.com/controller

URL 看上去美觀得多了。

相關書籍: CodeIgniter 1.7CODEIGNITER 1.7 PROFESSIONAL DEVELOPMENTProfessional CodeIgniter