CodeIgniter URL
默認情況下,CodeIgniter 中的 URL 被設計成對搜索引擎和人類友好。不同于使用標準“查詢字符串”方法的是,CodeIgniter 使用基于段的方法:
example.com/news/article/my_article
注意:查詢字符串形式的 URL 是可選的,分述如下。
URI 段
根據(jù)模型-視圖-控制器模式,在此 URL 段一般以如下形式表示:
example.com/class/function/ID
- 第一段表示調用控制器類。
- 第二段表示調用類中的函數(shù)或方法。
- 第三及更多的段表示的是傳遞給控制器的參數(shù),如 ID 或其它各種變量。
URI 類和 URL 輔助函數(shù)中的函數(shù)可以使你的 URI 更簡單的工作。另外,使用 URI 路由特性可以將你的 URL 重定向,以獲得更大的靈活性。
刪除 index.php 文件
默認情況下,index.php 文件將被包含在你的 URL 中:
example.com/index.php/news/article/my_article
你可以很容易的通過 .htaccess 文件來設置一些簡單的規(guī)則刪除它。下面是一個例子,使用“negative”方法將非指定內容進行重定向:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
如果你的項目不在根目錄請把上面這一句改為:RewriteRule ^(.*)$ index.php/$1 [L]
在上面的例子中,可以實現(xiàn)任何非 index.php、images 和 robots.txt 的 HTTP 請求都被指向 index.php。
添加 URL 后綴
通過設置 config/config.php 文件,你可以為 CodeIgniter 生成的 URL 添加一個指定的文件后綴。舉例來說,如果 URL 是這樣的:
example.com/index.php/products/view/shoes
你可以隨意添加一個后綴,例如 .html,使其顯示為:
example.com/index.php/products/view/shoes.html
(icebird注:英文中由于參數(shù)可直接看懂其含義,并未說明應修改哪個參數(shù),在這里應修改$config['url_suffix']這個參數(shù)。)
啟用查詢字符串
在一些情況下你需要在 URL 中使用查詢字符串:
index.php?c=products&m=view&id=345
CodeIgniter 支持這個功能是可選的,可以在 application/config/config.php 文件中進行設置。如果你打開 config 文件可以看到如下內容:
$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'c'; //控制器名
$config['function_trigger'] = 'm'; //方法名
$config['directory_trigger']='d'; //若控制器在子目錄下,URL中需帶有這個參數(shù),指定控制器所在子目錄名稱
如果你將 enable_query_strings 更改為 TRUE ,那么這個功能就被激活了。此時,你就可以通過關鍵字來調用需要的控制器和方法了:
index.php?c=controller&m=method
請注意:如果你使用查詢字符串,那么就必須使用自己建立的 URL ,而且不能使用URL 輔助函數(shù)(或是其他生成 URL 的輔助函數(shù),例如表單輔助函數(shù)),因為這些都是根據(jù)分段 URL 設計的。
?