带有语言子目录的cakephp路由

带有语言子目录的cakephp路由,cakephp,cakephp-1.3,Cakephp,Cakephp 1.3,我正在生成一个链接(当语言设置为“fre”时适用): 我还有一个语言的子目录[eng | fre],如上所示,它可以是任何一种语言: 我是这样说的: Router::connect('/:language/:controller/:action/*', array(), array('language' => 'eng|fre')); // this worked before the language subd

我正在生成一个链接(当语言设置为“fre”时适用):

我还有一个语言的子目录[eng | fre],如上所示,它可以是任何一种语言:

我是这样说的:

Router::connect('/:language/:controller/:action/*',
                   array(),
                   array('language' => 'eng|fre'));

// this worked before the language subdomain
Router::connect('/about',array('controller'=>'pages','action'=>'about'));
我的问题是,我希望URL是:

/eng/about
/fre/about
但很明显,他们的表现是:

/eng/pages/about
/fre/pages/about

我认为假设这应该行得通

Router::connect('/:language/about',array(
    'controller'=>'pages',
    'action'=>'about',
    'language' => 'eng|fre'
));
编辑:如果所有20页都是页面,你可以尝试以下方法

Router::connect('/:language/:action',array(
    'controller'=>'pages',
    'action' => 'about|contact|something|else',
    'language' => 'eng|fre'
));

这允许您对任何页面使用任何3个字符的语言代码:

Router::connect(
    '/:language/:controller/:action/*',
    array(),
    array('language'=>'[a-z]{3}')
);

是的,谢谢,我试过了,但这是一个订购问题,恼人的是我至少有20个URL需要这样做:|
Router::connect(
    '/:language/:controller/:action/*',
    array(),
    array('language'=>'[a-z]{3}')
);