使用Regex自定义CakePHP路由


Custom CakePHP route with Regex

我使用的是cakehp2.3.8,我有这个自定义路由。

Router::connect('/:regione/*', array('controller' => 'ads', 'action' => 'region'), array('regione' => 'WHAT HERE??' )); 

现在,如果我的:regione不是,并且以字符串auth开始,我必须执行此路由。

示例:

example.com/abruzzo   (ok)
example.com/abruzzo/2 (ok)
example.com/abruzzo/3 (ok)
example.com/auth (NO)
example.com/auth/something (NO)

在这种情况下,我不知道如何编写此regex,因为我需要执行路由IFauth字符串不匹配/START

谢谢!

我认为应该使用负前瞻:

(?!auth).*

这应该匹配所有不以auth开头的内容,这意味着即使是authenticate也不会匹配。

内部编译的路由正则表达式如下所示:

#^(?:/(?P<regione>(?!auth).*))(?:/(?P<_args_>.*))?[/]*$#