我在routes.php中使用以下代码来隐藏URL结构中的控制器名称:
$route['(:any)'] = "auth/$1";
它的效果很好,但我的问题是:当我想访问另一个控制器时,它似乎将其视为隐藏控制器的一个功能。
所以举个例子。我有
http://mysite.com/controller1/somefunction
变成:
http://mysite.com/somefunction
如果我想访问该怎么办:
http://mysite.com/jsonfunction/anotherfunction/
如何在保持另一个控制器隐藏的同时访问另一个控制器?我真的不希望访客看到http://mysite.com/maincontroller/只是多余的!
答案 0 :(得分:2)
我担心你必须更具体地定义你的路线。 你仍然可以使用:
$route['(:any)'] = "auth/$1";
但它可能会转到您的路线列表中的按钮。
如果你想要添加其他路线,那么你必须将它们置于最重要的位置。 例如:
$route['login'] = "auth/login";
$route['varY'] = "controllerX/varY";
$route['varY/(:any)'] = "controllerX/varY/$1";
$route['foobar'] = "controller/method";
$route['(:any)'] = "auth/$1";
有关更多信息和未来参考,请参阅此文档: http://codeigniter.com/user_guide/general/routing.html