将每个请求路由到给定控制器,除非指定了另一个控制器

时间:2011-01-08 03:58:09

标签: php codeigniter

我正在尝试实现以下行为:http://example.com/anything应将anything传递给默认控制器(即“category_browser”),除非anything是控制器名称。

第一部分可以通过config/routes.php中的这一行轻松实现:

$route[':any'] = "category_browser";

虽然我没有设法让第二个工作。

我真的很感激任何意见。

其他信息:控制器的数量非常少;为每个人写一个选项行是一个选择;他们应该传递参数。

2 个答案:

答案 0 :(得分:2)

使用此: http://pinoytech.org/blog/post/CodeIgniter-Route-Everything-except-these-Controllers

$route['^(?!controller|controller|controller)\S*'] = "article/$1";

答案 1 :(得分:1)

创建一个指向所有内容的主控制器。在主控制器中,检查设置的控制器名称是否存在,如果存在,则运行它,如果不存在,则使用控制器名称作为方法调用category_browser。