我们在应用ThinkPHP5进行系统开发时,为了巩固后台安全,常常利用多入口机制来隐藏后台地址,在此以index和admin两个模块举例说明具体实现步骤及问题解决方案:

1:建立后台入口文件 如 admin.php,内容为:

<?

2:在配置文件config.php设置:

<?

来禁止admin模块访问。

3:但在实际开发时,发现多模块多入口情况下,全局路由可能会同时影响index和admin模块,比如路由定义:

<?

实测中发现如果admin模块中也有product控制器及product控制器中有index方式,会报错:模块不存在:如下图

56d05054b9de08023be56c6286e3210c.png

鉴于此,试图网上搜索TP5的路由按模块配置的解决方案,有改源码的,有利用路由分组,有截取URL按条件设置路由的等等,结果尝试了都不太好用,在此给出的解决方案是:

在index入口文件中显式绑定index模块:

<?

这样,前台绑定index,后台绑定admin,我们就可以利用常量BIND_MODULE进行路由按模块定义:

<?

经测试,解决后台地址隐藏及路由分模块定义同时没有发现系统异常。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐