yii2禁用路由规则右侧部分的访问权限

在web.php我有以下代码:

'urlManager' => [
        'class' => 'yii\web\UrlManager',
        // Disable index.php
        'showScriptName' => false,
        // Disable r= routes
        'enablePrettyUrl' => true,
        'rules' => array(
                'calc' => 'site/calc',
        ),
    ],

我希望允许用户访问example.com/calc但不访问example.com/site/calc.我怎么能用更少的努力正确地做到这一点?换句话说,现在可以使用两个选项 – “site / calc”和“calc”,我想禁用“site / calc”.

最佳答案 尝试将enableStrictParsing添加到UrlManager配置,如下所示

 'urlManager' => [
    'class' => 'yii\web\UrlManager',
    // Disable index.php
    'showScriptName' => false,
    // Disable r= routes
    'enablePrettyUrl' => true,
    'enableStrictParsing' => true,
    'rules' => array(
            'calc' => 'site/calc',
    ),
],

在这种情况下,如果没有匹配请求的规则,那么它被认为是坏的.

点赞