0

我正在使用 cakephp 2.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)

在这种情况下,我不知道如何编写此正则表达式,因为我需要使用身份验证字符串执行路由 IF DOES NOT MATCH/START 。

谢谢!

4

1 回答 1

1

我认为使用负前瞻应该做到这一点:

(?!auth).*

这应该匹配不以 开头的所有内容auth,这意味着甚至authenticate不匹配。

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

#^(?:/(?P<regione>(?!auth).*))(?:/(?P<_args_>.*))?[/]*$#
于 2013-08-04T12:39:11.353 回答