CakePHP路由正则表达式匹配时,我不';我不想这样

CakePHP路由正则表达式匹配时,我不';我不想这样,cakephp,cakephp-2.0,Cakephp,Cakephp 2.0,php中的这段代码用于将URL从旧版本的站点路由到一个函数,然后重定向到新URL。对于它应该用于的URL,例如/p2045/某些产品,它工作得很好,但它也匹配以p开头的URL,例如/products。我假设下面的正则表达式与此不匹配。谁能给我指出正确的方向吗 Router::connect('/p:id/*', array( 'controller' => 'products', 'action' => 'legacy_redirect',

php中的这段代码用于将URL从旧版本的站点路由到一个函数,然后重定向到新URL。对于它应该用于的URL,例如
/p2045/某些产品
,它工作得很好,但它也匹配以p开头的URL,例如
/products
。我假设下面的正则表达式与此不匹配。谁能给我指出正确的方向吗

Router::connect('/p:id/*',
    array(
        'controller' => 'products',
        'action' => 'legacy_redirect',
        'id' => '^[0-9]+$'
    )
);
根据这一点:我认为您应该使用以下内容:

Router::connect(
    '/p:id/*',
    array('controller' => 'products', 'action' => 'legacy_redirect'),
    array(
        'pass' => array('id'),
        'id' => '[0-9]+'
    )
);

当与之匹配时,此路由将
/products
发送到哪里?发送到products controller的旧版\u重定向操作$这个->参数['id']等于“Products:”)花了我很长时间才发现我的正则表达式位与其他所有元素都在同一个数组中-谢谢。