2011-06-17 108 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'部分。