1

私の routes.php のこのコードは、古いバージョンのサイトから新しい URL にリダイレクトする関数に URL をルーティングするように構築されています。などの正常に機能するはずの URL に対してはうまく機能していますが、./p2045/some-productなどの ap で始まる URL にも一致しています/products。以下の正規表現はこれと一致しないと思いました。誰かが私を正しい方向に向けることができますか?

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

1 に答える 1

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]+'
    )
);
于 2013-05-30T14:51:01.860 に答える