0

我需要编写一个 CI 路由,以便它加载正确的控制器。我想要做的是编写一个排除“功能”控制器的路线。这是我的路线(但第一个不起作用)。

$route['(\w{2})/(\w{2})/products/([\w]+!features)'] = "products/products/$3";  // folder/controller/method
$route['(\w{2})/(\w{2})/products/features/([\w]+)'] = "products/features/$3";  // folder/controller/method

我想要发生的是顶行应该加载任何不是功能控制器的控制器。但是我在两条线之间遇到了冲突。我尝试将“!features”放在行中的几个不同位置,带引号和不带引号,我仍然要加载功能控制器或加载产品控制器中的其他方法之一。但不是两者兼而有之。有人可以在这里帮忙吗?谢谢。

4

1 回答 1

1

尝试将第一行更改为:

$route['(\w{2})/(\w{2})/products/(?!features$)(\w+)'] = "products/products/$3";
  • (?!foo)是一个否定的前瞻,如果它后面的任何内容匹配则失败foo
  • $表示字符串的结尾,并且可以确保它features不是较长单词的一部分。
于 2011-07-28T20:38:14.600 回答