如何在Yii 2模块的路由中指定新的子目录?

如何在Yii 2模块的路由中指定新的子目录?,yii,module,routing,yii2,Yii,Module,Routing,Yii2,我正在使用yii2并在一个名为apiv1的yii2模块中构建一个RESTful API 模块apiv1的文件config.php如下所示: // ... urlManager' => [ // ... 'rules' => [ [ 'class' => 'yii\rest\UrlRule', 'controller' => [

我正在使用yii2并在一个名为
apiv1
的yii2模块中构建一个RESTful API

模块apiv1的文件
config.php
如下所示:

// ...
urlManager' => [
        // ...
        'rules' => [
            [
                'class' => 'yii\rest\UrlRule',
                'controller' => [
                    'likes',
                ],
            ],
        ],
 ];

例如,
GET/apiv1/likes
可以工作,但我想设置一个路由来处理
GET/api/v1/likes
。如何单独或作为从
api/v1
apiv1
的一般路线对整个模块执行此操作

您可以使用
prefix
属性自定义rest/UrlRule路由

例如,对于您的情况,您应该能够:

[
    'class' => 'yii\rest\UrlRule',
    'controller' => 'likes',
    'prefix' => 'api/v1',
]

有关更多信息,您可以查看和-尤其是查看
$patterns
$extraPatterns
属性以了解其他配置选项。

您是否试图将到达
/apivi/likes/
的请求重定向到
/api/v1/likes
?不是重定向只是重新路由,而是重定向。模块名为apiv1。对
GET/api/v1/likes
的请求工作正常,但我希望将对
GET/api/v1/likes
的请求路由到相同的控制器/操作。我确实尝试添加键/值对
'prefix'=>'api/v1'
,但没有成功。更多信息:模块名为
apiv1
,因此请求
GET/api/v1/likes
可以正常工作。只需查找对
GET/api/v1/likes
的请求,以同时路由到此端点。Paul,我也遇到了同样的问题,设置'pluralize'=>false使'prefix'生效。