2011-06-17 107 views
3

結果我想:笨路線問題

greeting/102/steve => greeting/index/102/steve 

在greeting.php:

$route['greeting/(:num)/(:any)'] = "greeting/index/$1/$2";  

結果我得到:在route.php

function index($order,$name) 
{ 
    echo "order: $order , name : $name ! "; 
}  

order : , name : steve ! 
+0

這應該是工作,你有它設置的方式。 'name'通過但是'order'這個事實並不奇怪 - 但意味着這條路線確實有效。我懷疑這個問題還有更多? – 2011-06-17 05:42:15

回答

3

實際上,它是正確的使用雙引號。甚至在手冊中這樣指出(除了做了一百次),所以我沒有看到@cwallenpool指出的問題。
你的路由看起來不錯,肯定就是後調用保留路線

$route['default_controller'] = "welcome"; 
$route['404_override'] = ''; 
$route['greeting/(:num)/(:any)'] = "greeting/index/$1/$2"; 


我建議您嘗試使用$this->uri->rsegment(n)(有關​​的信息)來捕獲導致您遇到問題的重新路由的uri段。 (類似於$this->uri->segment(n)但專門爲重新路由的URI設計)

您也可以嘗試從AUTO更改$config['uri_protocol']到PATH_INFO(或其他替代品之一),看看問題不會坐在那裏。如果您使用htaccess從您的URL中刪除index.php,請記住刪除$config['index_page']中的'index.php'部分。