我的routes.php中的此代码用于将URL从旧版本的站点路由到随后重定向到新URL的函数。它适用于它应该适用的网址,例如/p2045/some-product
,但它也匹配以p开头的网址,例如/products
。我认为下面的正则表达式不符合这一点。有人能指出我正确的方向吗?
Router::connect('/p:id/*',
array(
'controller' => 'products',
'action' => 'legacy_redirect',
'id' => '^[0-9]+$'
)
);
答案 0 :(得分:3)
根据这个:http://book.cakephp.org/2.0/en/development/routing.html#passing-parameters-to-action我认为你应该使用类似的东西:
Router::connect(
'/p:id/*',
array('controller' => 'products', 'action' => 'legacy_redirect'),
array(
'pass' => array('id'),
'id' => '[0-9]+'
)
);