分享codeigniter 路由 URL 終極優化

2021-07-14 22:08:28 字數 1406 閱讀 7560

a8u論壇的開發者發現看樣子很有必要發個帖子了,url格式是如此的重要

**這裡,可以看一下原文.

a8u論壇的開發者發現事前先說明白一點,使用ci開發生成位址應該100%用site_url()輔助函式和相關輔助函式實現,實在不行自己擴充套件url輔助函式.否則你會遇到或者可能遇到頭疼的或潛在的問題.

還有一點要明白anchor() redirect() current_url()等url相關的函式都是通過呼叫site_url()實現的,也就是說site_url()是最底層的.

搞清楚這些可以閱讀下文了.

ci版本 1.7.2

例如:其中code是控制器名稱,view是控制器的方法,81是引數一般傳遞的是文章的id.

現在要重寫城

先說下基本原理,首先對位址重寫,然後對重寫的位址解析.

通過研究ci的原始碼發現位址生成全部使用url輔助函式site_url,所以從site_url下手

1。擴充套件原有的url輔助函式

php複製**

/** 呼叫rewrite的site_url

*/if ( ! function_exists('site_url'))

$ci =& get_instance();

return $ci->config->site_url($uri);}}

//重寫url,用於router中優化url

//在url輔助函式site_url中呼叫

if ( ! function_exists('rewrite'))

}複製**

2。建立重寫規則,在config目錄下建立rewrite.php檔案.

php複製**

a8u論壇

<?php 

/** 在rewrite輔助函式中

*/$config['pattern']=array();

$config['replace']=array();

//檢視code詳細內容的

$config['pattern'][0]='/code\/view\//i';

$config['replace'][0]='code_';

//tags

$config['pattern'][1]='/tags\/index\/(.+)/i';

$config['replace'][1]='tag_\\1';

複製**

3。對重寫的url解析,解析通過config目錄下的routes.php實現.

php複製**

//檢視code詳細內容

複製**

codeigniter中路由的組成

遵循path info模式 thinkphp中三種模式中的一種 your site url index.php pages view 1 2 3 pages未知為控制器,view 為方法名 1 view函式的第乙個引數 2 view函式的第二個引數 3 view函式的第三個引數 注 url上的引數多...

CodeIgniter框架URL路由總結

uri 路由 一般來說,uri字串有著和它唯一對應的控制器 controller 類 方法。uri的各個部分是如下模式 pattern 複製 如下 然而在一些例子中,你也許想重定向這種關係來呼叫乙個不同的類 方法 class function 而不是與url一一對應 的呼叫 例如,你可能想使你的ur...

codeigniter預設路由報錯的問題

最近在使用codeigniter時遇到乙個莫名其妙的bug。如下 在config routes配置乙個預設路由 route default controller homepage index 結果,訪問根url的時候,404錯誤 而訪問 homepage index是正常的。百思不得其解,就去看了一...