我在使用URI中的URI重新路由來創建更好的URLS。這裏的一個例子是:在codeigniter中URI重新路由
$route['users/(:any)'] = "users/index/$1";
這裏的目的是擺脫URL的索引。這很好。然而,它阻止我從能夠訪問任何功能,在用戶控制器,例如
mywebsite.com/users/messages
只是重定向到users/index
。有沒有解決的辦法?
我在使用URI中的URI重新路由來創建更好的URLS。這裏的一個例子是:在codeigniter中URI重新路由
$route['users/(:any)'] = "users/index/$1";
這裏的目的是擺脫URL的索引。這很好。然而,它阻止我從能夠訪問任何功能,在用戶控制器,例如
mywebsite.com/users/messages
只是重定向到users/index
。有沒有解決的辦法?
定義的要保留,然後讓剩下的通配符匹配方法的列表:
$route['users/(messages|login|something)'] = "users/$1";
$route['users/(:any)'] = "users/index/$1";
嗨,我是不熟悉的CI,但我有一個類似的路由系統。 (:any)作爲一種捕獲所有。當我的路由器檢查路由規則時,它會停止檢查它是否找到完全匹配。那麼答案就是在全部捕獲之前添加另一個函數路由。像
$route['users'] = "users/index/";
$route['users/messages/(:any)'] = "users/checkmessages/$1";
$route['users/(:any)'] = "users/$1";
不知道CI如何處理這個,但我可以想到的東西像第一個URL部分是類和第二個功能。即使沒有路由表,路由器或控制器模塊也應具備開始調用該功能的智能。 路由表只能用於「其他可調用名稱」的情況下,就像我上面用messages/checkmessages thingy所做的那樣。
希望能讓你走。