亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

ディレクトリ 検索
歡迎 目錄 快速參考圖 基本信息 服務器要求 許可協議 變更記錄 關于CodeIgniter 安裝 下載 CodeIgniter 安裝指導 從老版本升級 疑難解答 介紹 開始 CodeIgniter 是什么? CodeIgniter 速記表 支持特性 應用程序流程圖 模型-視圖-控制器 架構目標 教程 內容提要 加載靜態(tài)內容 創(chuàng)建新聞條目 讀取新聞條目 結束語 常規(guī)主題 CodeIgniter URL 控制器 保留字 視圖 模型 輔助函數 使用 CodeIgniter 類庫 創(chuàng)建你自己的類庫 使用 CodeIgniter 適配器 創(chuàng)建適配器 創(chuàng)建核心系統類 鉤子 - 擴展框架的核心 自動裝載資源 公共函數 URI 路由 錯誤處理 緩存 調試應用程序 以CLI方式運行 管理應用程序 處理多環(huán)境 PHP替代語法 安全 開發(fā)規(guī)范 類庫參考 基準測試類 日歷類 購物車類 配置類 Email 類 加密類 文件上傳類 表單驗證詳解 FTP 類 圖像處理類 輸入類 Javascript 類 語言類 裝載類 遷移類 輸出類 分頁類 模板解析器類 安全類 Session 類 HTML 表格類 引用通告類 排版類 單元測試類 URI 類 User-Agent 類 表單驗證 XML-RPC 和 XML-RPC 服務器 Zip 編碼類 緩存適配器 適配器參考 適配器 數據庫類 Active Record 類 數據庫緩存類 自定義函數調用 數據庫配置 連接你的數據庫 數據庫快速入門例子代碼 字段數據 數據庫維護類 查詢輔助函數 數據庫類 查詢 生成查詢記錄集 表數據 事務 數據庫工具類 JavaScript類 輔助函數參考 數組輔助函數 CAPTCHA 輔助函數 Cookie Helper 日期輔助函數 目錄輔助函數 下載輔助函數 Email 輔助函數 文件輔助函數 表單輔助函數 HTML輔助函數 Inflector 輔助函數 語言輔助函數 數字輔助函數 路徑輔助函數 安全輔助函數 表情輔助函數 字符串輔助函數 文本輔助函數 排版輔助函數 URL 輔助函數 XML 輔助函數
テキスト

CodeIgniter 用戶指南 版本 2.1.0

編輯文檔、查看近期更改請 登錄 或 注冊  找回密碼
查看原文

URI 路由

一般來說,URI字符串有著和它唯一對應的控制器(controller)類/方法。URI的各個部分是如下模式(pattern):

example.com/class/function/id/

然而在一些例子中,你也許想重定向這種關系來調用一個不同的類/方法(class/function),而不是與URL一一對應(的調用).

例如,你可能想使你的URL采用這種原型(prototype):

example.com/product/1/
example.com/product/2/
example.com/product/3/
example.com/product/4/

一般情況下,URL的第二個部分表示方法名,不過在上面的例子中,它表示一個產品的ID。CodeIgniter可以實現這個功能,讓用戶可以重新定向(remap)URI處理程序.

設定你自己的路由規(guī)則

路由規(guī)則定義在application/config/routes.php 文件中. 在此文件中,你可以看到一個名為 $route的數組,它可以讓你定義你自己的路由規(guī)則。 定義可以用兩種方式: 通配符(wildcards) 或者 正則表達式(Regular Expressions)

通配符

一個典型的通配符路由看起來是這樣的:

$route['product/(:num)'] = "catalog/product_lookup";

在一個路由中,數組的鍵包含著被匹配的URI,而數組的值包含著路由將被重定向的目的地.在上面的例子中,如果單詞“product”出現在URL的第一個部分中,而且數字(:num)出現在URI的第二個部分中,"catalog"類和"product_lookup"方法將被替代使用(即將被重定向).

你可以匹配文字的值或者使用以下兩種通配符類型:

:num 將匹配一個只包含有數字的segment(段).
:any 將匹配一個包含任何字符的segment.

注意: 路由將會按照定義的順序來運行.高層的路由總是優(yōu)先于低層的路由.

例子

下面是一些簡單的例子:

$route['journals'] = "blogs";

如果URL的第一個分段(類名)是關鍵字"journals",那么將會重定向到"blogs"類中處理.

$route['blog/joe'] = "blogs/users/34";

如果URL的前兩個分段是"blog"和"joe",那么將會重定向到"blogs"類的"users"方法中處理.并且將ID"34"設為參數.

$route['product/(:any)'] = "catalog/product_lookup";

當"product"作為URL中第一個分段時, 無論第二分段是什么都將被重定向到"catalog"類的"product_lookup"方法.

$route['product/(:num)'] = "catalog/product_lookup_by_id/$1";

當“product”作為 URL 中第一個分段時,如果第二分段是數字,則將被重定向到“catalog”類,并傳遞所匹配的內容到“product_lookup_by_id”方法中。

重要提示: 不要在前面或后面加"/".

正則表達式

如果你喜歡可以使用正則表達式來自定義你的路由規(guī)則. 任何有效的正則表達式都是被允許的, 甚至逆向引用.

注意:? 如果你使用逆向引用請將雙反斜線語法替換為美元符語法(1 替換為 $1).

一個典型的正則表達式看起來像下面的樣子:

$route['products/([a-z]+)/(\d+)'] = "$1/id_$2";

上例中, 類似于 products/shirts/123 的URI 將換成調用 shirts 控制器類的 id_123 方法.

你也可以混合使用通配符與正則表達式.

系統保留的路由

系統會保留兩個路由:

第一個為系統默認的路由:

$route['default_controller'] = 'welcome';

這個路由表明了當URI中不包含要訪問的類和控制器信息的(即只訪問根目錄的情況,如http://localhost/ci)將要加載哪個控制器。上例中,系統將加載 "welcome" 這個類(控制器)。你應該保證設置一個默認路由,不然你的首頁將會顯示 404 錯誤。

第二個為404頁面的路由:

$route['404_override'] = '';

這個路由標識了如果請求的控制器無法訪問的時候將加載哪個控制器。它相當于覆蓋了默認的404錯誤頁面(即提供了自己定義404頁面的功能)。但它不會影響show_404()這個方法,這個方法依然會加載默認的位于application/errors/error_404.phperror_404.php頁面。

重要: 保留的路由應該在所有通配符或正則表達式路由之前定義。

?

翻譯貢獻者: architectcom, caesarjuly, caincheung, chouqiuqiu, Hex, IT不倒翁, lijun14992560, nardo, shnwqshnwq, test_88
最后修改: 2012-02-05 23:36:59
前の記事: 次の記事: