2012-09-18 102 views
1

我试图设置基于第一个URI段的路由。codeigniter条件路由

我有一个规则:

$route['(:any)'] = pages/view_page/$1; 

我想让我的路线有条件的,这样如果URI段1名的控制器被称为不言而喻控制器正常。 如果不存在控制器,则转到pages/view_page函数。

我试着用if语句包装$ route规则来检查URI段1并使用它来查看文件是否存在以匹配它,但这似乎不起作用。

有没有人有任何建议如何做到这一点,而不必写大量的路由配置。

回答

1

由于路由覆盖是基于简单的基于正则表达式的转换,因此您不能直接嵌入“是否会工作”类型的逻辑。这使你基本上有两种选择:

  1. 列表,你想成为“一网打尽” (:any)规则
  2. 使用$route['404_override']保留路由,而不是指示应该加载哪些控制器在没有控制器之前,明确工作路线否则发现。但是,请检查登录的网址,并拨打show_404()并输出适当的404 http状态代码以查找丢失的静态资产等。
+0

确实很棒。我只需手动输入像画廊这样的东西的正确路线。如果你可以自动这样做,这将是很酷的。 – jaget