我目前在我的 CodeIgniter 路由文件中有这个。
它将任何具有 URI api/controller/function
的内容映射到 controller/api_function
。
$route['api/(:any)/(:any)/(:any)/(:any)/(:any)/(:any)'] = '$1/api_$2/$3/$4/$5/$6';
$route['api/(:any)/(:any)/(:any)/(:any)/(:any)'] = '$1/api_$2/$3/$4/$5';
$route['api/(:any)/(:any)/(:any)/(:any)'] = '$1/api_$2/$3/$4';
$route['api/(:any)/(:any)/(:any)'] = '$1/api_$2/$3';
$route['api/(:any)/(:any)'] = '$1/api_$2';
如您所见,这不是很有效。根据提供的参数数量,我需要一条不同的路线。有没有办法自动传递所有参数?所以假设,我正在寻找类似...
$route['api/(:any)/(:any)/unlimited parameters'] = '$1/api_$2/unlimited parameters';
谢谢!
最佳答案
试试这个:
$route['api/([^/]*)/([^/]*)/(.*)'] = '$1/api_$2/$3';
它基本上检查两个段(除斜杠之外的任何字符),然后将之后的任何内容作为参数附加到您的 Controller 函数。
这不会匹配具有NO 参数的路由,但如果您需要处理这种情况,这并不难。
关于Codeigniter 路由无限参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9455374/