Codeigniter:删除特定控制器上的URI段


Codeigniter: Remove a URI segment on specific controller

我有一个名为cart的控制器,它具有许多功能。

我只需要这个特定的控制器,将第二个段"重定向"到另一个,特别是:

http://www.domain.com/cart/music应显示cart/show/music功能。

我试着做:

class Cart extends MY_Controller {
    public function show(){
        $routes['cart/musica'] = 'cart/show/$1';
        //More code...
    }
} 

这是我在其他答案上看到的,但无法使其发挥作用,实际上对我来说似乎不正确。

此"重定向"应仅对Cart class中的某些函数有效。如何处理?

您应该写入/application/config/routes.php

$route['cart/music'] = 'cart/show/$1';

注意:使用$route而不是$routes

如果你想设置动态,可以像这样使用。Regex允许alpha-numeric个字符的

$route['cart/([a-zA-Z0-9]+)'] = 'cart/show/$1';

或者,您可以使用any允许所有字符,但这不符合逻辑:

$route['cart/(:any)'] = 'cart/show/$1';

config/routes.php中添加以下内容,

 $route['cart/(:alpha)'] = "cart/show/$1";