美文网首页
Yii2 URL路径优化之去除controller标识

Yii2 URL路径优化之去除controller标识

作者: uc小天 | 来源:发表于2017-03-09 00:07 被阅读244次

    网站会有不少静态信息页面,如果

    YII默认路由

    http://www.miiti.com/index.php?r=post/view&id=100
    

    作为MVC框架,所有的用户请求都是发送给入口脚本 index.php 来处理的。Yii路由会分派到对应 controller 和 action 进行处理。(几乎所以MVC框架皆是如此)对应上面的URL表示这个请求将由PostController 的 actionView来处理,id为请求参数。

    URL美化

    在现在网站开发中上述默认的URL录入形式不太友好。所以,Yii也提供了一种美化URL的功能,使得上面的URL可以用一个比较整洁、美观的形式表现出来, 如:

     http://www.digpage.com/post/view/100 
    

    这个功能的实现是依赖于一个称为 urlManager 的应用组件。

    使用 urlManager 可以解析用户的请求,并指派相应的module, controller和action来进行处理, 还可以根据预义的路由规则,生成需要的URL返回给用户使用。 简而言之,urlManger具有解析请求以便确定指派谁来处理请求和根据路由规则生成URL 2个功能。

    'urlManager' => [
                'enablePrettyUrl' => true,
            ],
    

    在配置文件 main.php 中的 components 项目下添加上述内容,打开Yii URL美化功能。

    美化URL之去除controller标识

    类似Yii给出的模板不少页面都是在www.domain.com 后直接添加。www.domain.com/login,而不是www.domain.com/site/login。类似页面还有很多logout|about|signup|contact等。

    'urlManager' => [
                'enablePrettyUrl' => true,
                'showScriptName' => false,
                'rules' => [
           '<alias:login|logout|about|signup|contact>' => 'site/<alias>',
                ],
            ],
    

    更新成上面的配置,便可以支持将 www.domain.com/login 路由到 site controller的login action。

    相关文章

      网友评论

          本文标题:Yii2 URL路径优化之去除controller标识

          本文链接:https://www.haomeiwen.com/subject/fkiigttx.html