Regex 编码点火器路由
我需要编写一个CI路由,以便它加载正确的控制器。我想做的是编写一个排除“features”控制器的路由。以下是我的路线(但第一条不起作用)Regex 编码点火器路由,regex,codeigniter,regex-negation,codeigniter-url,Regex,Codeigniter,Regex Negation,Codeigniter Url,我需要编写一个CI路由,以便它加载正确的控制器。我想做的是编写一个排除“features”控制器的路由。以下是我的路线(但第一条不起作用) 我想要发生的是顶行应该加载任何不是features控制器的控制器。但我发现这两条线之间有冲突。我已经尝试将“!features”放在行中的两个不同位置,有引号和没有引号,但我仍然要加载features控制器或产品控制器中的其他方法之一。但不是两者都有。有人能帮忙吗?谢谢。尝试将第一行更改为: $route['(\w{2})/(\w{2})/products/
我想要发生的是顶行应该加载任何不是features控制器的控制器。但我发现这两条线之间有冲突。我已经尝试将“!features”放在行中的两个不同位置,有引号和没有引号,但我仍然要加载features控制器或产品控制器中的其他方法之一。但不是两者都有。有人能帮忙吗?谢谢。尝试将第一行更改为:
$route['(\w{2})/(\w{2})/products/(?!features$)(\w+)'] = "products/products/$3";
是一个消极的前瞻,如果它后面的内容与(?!foo)
匹配,那么它将失败foo
表示字符串的结尾,用于确保$
不是较长单词的一部分功能
\b
是一个单词边界,它匹配\w
和\w
之间的位置,但我将其改为$
,因为这似乎更适合这种情况。PS:我不知道CI,所以我不确定您是否应该通过在^
和$
中围绕规则来确定您的规则
$route['(\w{2})/(\w{2})/products/(?!features$)(\w+)'] = "products/products/$3";