Yii 2.0 的 URL 路由规则配置

1. 路由规则设置,是通过修改配置文件(一般是config/web.php)实现的。

大家来看看如何修改配置文件修改文件。

....
return [
    ....
    'components' => [
        'urlManager' => [
            'showScriptName' => true, // 是否显示文件名,如index.php
            'enablePrettyUrl' => true, // 是否隐藏“&”式的URL
            // 路由规则
            'rules' => [
                '<controller:w+>/<action:w+>/<id:d+>-<page:d+>'=>'<controller>/<action>', // 路由一
                '<controller:w+>/<action:w+>/<id:d+>'=>'<controller>/<action>', // 路由二
            ],
        ],
        ....
    ],
];

由此可见,URL 路由配置的名称为 urlManager,它存在于 components 属性中(如果没有,请添加进去)。其中,showScriptName 和 enablePrettyUrl 带有注释,比较好理解,下面看看两个举例路由设置对应的控制器和方法的形式。


2. 现在讲解上面设置中的两个 Yii2 的 URL 路由例子。

controller 和 action 分别代表控制器和方法,假如在控制器“Site”中有方法“actionIndex”和“actionDetail”,它们如果要对应以上两个路由规则,方法的形式应该就是像下面这样的。

class StudyController extends Controller
{
    ....
    public function actionIndex($id, $page = '1')
    {
        var_dump($id, $page);
    }
    public function actionDetail($id)
    {
        var_dump($id);
    }
    ....
}

上面的两个例子就可以通过类似下面的网址来访问了。

http://localhost:8080/index.php/study/index/2-8
http://localhost:8080/index.php/study/detail/2


3. 说到这里,大家会不会联想到默认路由的设置呢?

要设置默认路由,也就是设置入口控制器和方法,大家可以点击这里查看。


6