网站会有不少静态信息页面,如果
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。