简体   繁体   中英

Yii2 Static Pages Not Found

I've created a view in views/sites/example.php

<?php   
use yii\helpers\Html;   
?>   
<?= Html::encode($message) ?>  

Then in SiteController.php I have added

    public function actionExample($message = 'Hello')   
    {   
        return $this->render('example', ['message' => $message]);   
    }  

In main.php, the urlManager is configured

        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => array(
                '<controller:\w+>/<id:\d+>' => '<controller>/view',
                '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
                '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
            ),
        ],

when I try to access the page at localhost/example, I get a 404. What have I missed??

In rules section of urlManager part of code there are rules for which URL is checked to determine controller, action etc.

Because your action is in SiteController it can be accessed by //localhost/site/example/ url (rule '<controller:\w+>/<action:\w+>' => '<controller>/<action>' ).

So to make your action accessible via //localhost/example/ url another rule should be added to rules section.

If you add 'example' => 'site/example', to rules your action will be accessible on desired URL.

There is also a guide on https://www.yiiframework.com/doc/guide/2.0/en/runtime-routing so you can better understand routing in yii2.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM