CakePHP路由,使用带有默认前缀的语言前缀

CakePHP路由,使用带有默认前缀的语言前缀,cakephp,routing,default,prefix,Cakephp,Routing,Default,Prefix,我正在尝试创建一个默认的路由前缀 将转到希伯来文页面,而 将导致出现英文页面 Router::connect('/:language/mycont',array('controller'=>'contname','action'=>'index'),array('language'=>'[a-z]{0,3}')); 此代码允许我使用0-3个字母作为语言,但它仍然需要一种语言 行得通 不起作用 有没有办法解决这个问题? 使用默认路由是否可能?让我先说明一下,我不是路由专家,但在

我正在尝试创建一个默认的路由前缀

将转到希伯来文页面,而

将导致出现英文页面

Router::connect('/:language/mycont',array('controller'=>'contname','action'=>'index'),array('language'=>'[a-z]{0,3}'));
此代码允许我使用0-3个字母作为语言,但它仍然需要一种语言

行得通

不起作用

有没有办法解决这个问题?
使用默认路由是否可能?

让我先说明一下,我不是路由专家,但在这种情况下,您所做的工作不起作用是有道理的,因为路由需要一个语言参数;如果不在那里,路线就不匹配


要“修复”(引用,因为它没有真正损坏),您可能需要尝试设置默认区域设置,并在
AppController
中,如果存在
:language
值,则覆盖该区域设置。

我的解决方案只是将/设置为特定语言,而其他所有内容都已标记 /:语言/


这样我就不会重复路线。

这看起来像是一个快速而可靠的解决方案!我能想到的唯一其他合理的选择是重写Router::connect函数,以便在不存在时设置default:language值。但这可能有点过头了。