如果CodeIgniter中的url中有特定字符串,如何告诉routes.php不要使用控制器


How to tell routes.php to NOT to use a controller if a certain string is in the url in CodeIgniter?

所以,我正在处理这个问题。我得到了这两种类型的URLS:

localhost/en/wwomen

localhost/en/wwomen/products

我试图告诉CodeIgniter,如果它的localhost/en/wwomen,则使用路由X,但如果它的localhost/en/women/products则使用路由Y,但它总是使用X路由。

我试图通过使用这样的正则表达式来排除/products部分:

$route['^en/women(?!products)(.*)'] = "women";
$route['^en/women/products'] = "products";

但我似乎无法让它发挥作用。

我希望你能得到我想要的东西。任何反馈都会得到通知。

$route['en/women/?'] = "women";
$route['en/women/products'] = "products";

应该解决这个问题吗?

默认情况下,正则表达式中基本存在^$

或者你可能需要一个:

$route['^en/women/products'] = "products";
$route['^en/women/?'] = "women";

只要上面有products,它就应该覆盖。

使用CI的通配符!

$route['en/women'] = "women";
$route['en/women/(:any)'] = "products";