php yii2 路径问题,Yii2 URL路径优化之去除controller标识

本文介绍了Yii框架中如何实现URL美化,通过启用pretty URL功能,将默认的参数化URL转换为更友好的形式,如http://www.digpage.com/post/view/100。这涉及到urlManager组件的配置,包括`enablePrettyUrl`和`showScriptName`选项。通过设置规则,可以将特定路径映射到控制器和操作,例如将www.domain.com/login路由到sitecontroller的loginaction。此外,还讨论了如何通过配置文件main.php开启和定制这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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' => [

'' => 'site/',

],

],

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值