0

我正在制作我的第一页,它需要一个名为$hash. 我的路线目前是这样的:

Router::connect('/activate/*', array('controller' => 'users', 'action' => 'activate'));

这几乎可以完美地工作,但是如果我输入如下 URL:

http://localhost/activate/something/somethingelse/long/url

它匹配路线。我希望它只匹配一个 32 字符长的参数,如下所示:

http://localhost/activate/ajsheeugnbloiuffheogysswhvnntpdd

以及其他一切导致 404。这样做的正确方法是什么?

4

1 回答 1

0

您可以为路线设置正则表达式匹配,例如

Router::connect(
    '/activate/:id',
    array('controller' => 'users', 'action' => 'activate'),
    array('id' => '[a-zA-Z]{32}')
);

你可以调整正则表达式,目前它只是字母。

这是参考:http ://book.cakephp.org/2.0/en/development/routing.html#route-elements

于 2013-02-08T03:51:17.730 回答