我正在创建第一页,需要一个名为$hash
的参数。我的路线目前是这样的:
Router::connect('/activate/*', array('controller' => 'users', 'action' => 'activate'));
几乎完美无缺,但如果我输入的网址如下:
http://localhost/activate/something/somethingelse/long/url
它匹配路线。我希望它只匹配一个32个字符长的参数,如下所示:
http://localhost/activate/ajsheeugnbloiuffheogysswhvnntpdd
以及导致404的其他一切。这样做的正确方法是什么?
答案 0 :(得分: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