为域/参数配置CakePHP 2.0路由(无控制器名称)

为域/参数配置CakePHP 2.0路由(无控制器名称),cakephp,routes,cakephp-2.0,Cakephp,Routes,Cakephp 2.0,我希望能够在CakePHP 2.0中路由如下内容: domain.com/london domain.com/milton keynes 到特定的控制器和操作 应用程序有多个控制器,因此仅当提供的参数与控制器名称不匹配时才应使用此路由。 通过在config/routes.php Router::connect( '/:location', array('controller' => 'articles', 'action' => 'testing'), array('p

我希望能够在CakePHP 2.0中路由如下内容:

domain.com/london
domain.com/milton keynes
到特定的控制器和操作

应用程序有多个控制器,因此仅当提供的参数与控制器名称不匹配时才应使用此路由。 通过在
config/routes.php

Router::connect(
  '/:location',
  array('controller' => 'articles', 'action' => 'testing'),
  array('pass' => array('location'), 'location' => '[a-z ]+')
);
仅当我注释掉
config/routes.php
中的
require
行时,将此代码与CakePHP 2.0一起使用才有效,但随后我松开了默认路由,因此指向任何其他控制器的URL会被捕获


如何实现所需的路由?

据我所知,这在Cake 1.3中也不适用,因为您的
[a-z]+
正则表达式也与简单的/controller\u name路由匹配;路由器无法区分两者,因此总是路由到它首先遇到的路由器


但是,您可以创建一个自定义管线类来实现这一点。Mark Story(蛋糕开发者之一)不久前写了一篇关于它的优秀文章,它是针对蛋糕1.3的,但是你可以很容易地将这个原则应用到2.0(我知道,因为我在我的2.0应用程序中使用它)。你可以找到帖子。

据我所知,这在Cake 1.3中也不应该起作用,因为你的
[a-z]+
正则表达式也与简单的/controller\u name路由匹配;路由器无法区分两者,因此总是路由到它首先遇到的路由器


但是,您可以创建一个自定义管线类来实现这一点。Mark Story(蛋糕开发者之一)不久前写了一篇关于它的优秀文章,它是针对蛋糕1.3的,但是你可以很容易地将这个原则应用到2.0(我知道,因为我在我的2.0应用程序中使用它)。你可以找到这篇文章。

这可能无法回答上面提出的具体问题,但它是相关的,这一页出现在搜索结果中,我的目标是让找到它的人(我想包括未来的我)有一段时间不必研究我刚刚研究的内容

我需要为不同的域添加带有参数的路由。例如,
example.com
应该像往常一样,而
example.org/some_page
应该直接路由到特定的控制器和操作。因此,我将以下内容添加到我的
Config/routes.php

if ( CakeRequest::host()=='example.org' ) {
    Router::connect('/:my_variable', 
        array(
            'controller'=>'my_controller', 
            'action'=>'my_action'
        ),
        array(
            'my_variable'=>'[a-zA-Z-0-9 ]+', 
            'pass'=>array('my_variable')
        )
    );
}

这可能无法回答上面提出的具体问题,但它是相关的,这个页面出现在搜索结果中,我的目标是让找到它的人(包括我猜的未来我)有一段时间不必研究我刚刚研究的内容

我需要为不同的域添加带有参数的路由。例如,
example.com
应该像往常一样,而
example.org/some_page
应该直接路由到特定的控制器和操作。因此,我将以下内容添加到我的
Config/routes.php

if ( CakeRequest::host()=='example.org' ) {
    Router::connect('/:my_variable', 
        array(
            'controller'=>'my_controller', 
            'action'=>'my_action'
        ),
        array(
            'my_variable'=>'[a-zA-Z-0-9 ]+', 
            'pass'=>array('my_variable')
        )
    );
}

谢谢-是一个查看提供的URL的自定义路由类,查询数据库以查看其是否存在,如果存在-发送给控制器谢谢-是一个查看提供的URL的自定义路由类,查询数据库以查看其是否存在,如果存在-发送给控制器