urlManager在Yii2中找不到网站/索引

时间:2018-09-21 18:54:27

标签: rest yii2 yii2-basic-app

我只是在Yii 2中创建了一个Basic App模式。

我尝试测试RESTFull API。

默认情况下,该网站正在运行,但是当我更改urlManager时

'urlManager' => [
    'enablePrettyUrl' => true,
    'enableStrictParsing' => true,
    'showScriptName' => false,

    'rules' => [
            ['class' => 'yii\rest\UrlRule', 'controller' => 'cliente'],
    ],

],

我只会收到404错误。

我丢失了网站/索引!!!

有什么主意吗?

2 个答案:

答案 0 :(得分:0)

是此设置: 'enableStrictParsing' => true,

看这里:

https://github.com/yiisoft/yii2/blob/master/framework/web/UrlManager.php#L323

对于定义的siteController没有明确的url规则。

在此处了解更多信息

https://www.yiiframework.com/doc/guide/2.0/en/runtime-routing#url-rules

答案 1 :(得分:0)

site/index操作由于以下设置而不再起作用:'enableStrictParsing' => true。来自$enableStrictParsing documentation

  

如果启用了严格解析,则传入的请求URL必须至少与$rules中的一个匹配,才能被视为有效请求。否则,请求的路径信息部分将被视为请求的路由。

因此,如果启用此设置,则需要具有匹配的URL规则以支持给定的URL。在您的情况下,您只有一个REST端点规则,因此任何其他URL均不起作用。您应该禁用此设置或为主页添加规则:

'rules' => [
    '' => 'site/index',
    ['class' => 'yii\rest\UrlRule', 'controller' => 'cliente'],
],