[不花钱站长]:从免费域名开始[0元] Oracle永久免费VPS[0元] VPS环境搭建免费脚本[0元] 秒变大盘挂载免费网盘[0元] 小白免费采集器1天500W[0元] CF免费DNS+CDN服务[0元]
[零基础网赚]:撸本站免费源码[0元] 网站强引免费蜘蛛法[0元] 图片视频文件免费存储[0元] 外链轻松发布免费友链[0元] 入坑免费教程学习源代码[0元] 网上百种+赚钱联盟推荐[?元]

↑↑VPS推荐网 WWW.VPS.COM.IN 稳定 便宜 免备案↑↑


您现在的位置是:首页 > 全球[VPS测评] >  永久免费VPS 香港VPS,国外永久免费VPS

ThinkPHP5 路由别名无效的问题

全球[VPS测评]来源:VPS推荐网点击:1552
【性价之王】【线路之王】【价格之王】【配置之王】
【免费之王】【香港首推】【梯子之王】【独服之王】
ThinkPHP5 路由别名无效的问题

ThinkPHP5 路由别名定义无效,route.php 文件定义如下:

return [     'admin' => 'admin/Index/index',     'admin/login' => 'admin/Login/index',     'admin/logout' => 'admin/Login/logout',     '__alias__' =>  [         'admin/activity'  =>  'admin/Activity',     ], ];

模板中 url 生成代码:

{:url('admin/Activity/index')}

生成的 url:

http://localhost/admin/activity/index

按照官方手册提示,使用路由别名后,可以批量定义一系列的路由规则,此时访问 admin 模块的 Activity 控制器的所有操作都可以直接访问,比如:

http://localhost/admin/activity/index => admin/Activity/index http://localhost/admin/activity/add => admin/Activity/add

然而事实上在我的代码中路由别名定义并未生效,访问 http://localhost/admin/activity/index 指向的是默认的 admin/Index/index,仔细查看了一下 tp5 的官方手册找到了 ThinkPHP5 路由别名无效的原因。

在 ThinkPHP5 中路由默认规则匹配检测的时候只是对 URL 从头开始匹配,只要 URL 地址包含了定义的路由规则就会匹配成功,如果希望完全匹配,可以在路由表达式最后使用$符号。

而在我的路由配置文件中,先定义了 'admin' => 'admin/Index/index',规则,而这个规则只要 URL 地址并不是完全匹配,所以只要 URL 地址包含了定义的路由规则就会匹配成功,因此访问 http://localhost/admin/activity/index 指向的是默认的 admin/Index/index。

修改一下路由匹配规则,加上完全匹配设置即可,规则如下:

return [     'admin<span style="color:#ff0000;">/$</span>' => 'admin/Index/index',//加上/$即可     'admin/login' => 'admin/Login/index',     'admin/logout' => 'admin/Login/logout',     '__alias__' =>  [         'admin/activity'  =>  'admin/Activity',     ], ];

猜你可能想看的VPS


转载请注明原文地址:http://140.238.13.167:12355/read-205604.html

下一篇       上一篇