我们在应用ThinkPHP5进行系统开发时,为了巩固后台安全,常常利用多入口机制来隐藏后台地址,在此以index和admin两个模块举例说明具体实现步骤及问题解决方案:
1:建立后台入口文件 如 admin.php,内容为:
<?
2:在配置文件config.php设置:
<?
来禁止admin模块访问。
3:但在实际开发时,发现多模块多入口情况下,全局路由可能会同时影响index和admin模块,比如路由定义:
<?
实测中发现如果admin模块中也有product控制器及product控制器中有index方式,会报错:模块不存在:如下图
鉴于此,试图网上搜索TP5的路由按模块配置的解决方案,有改源码的,有利用路由分组,有截取URL按条件设置路由的等等,结果尝试了都不太好用,在此给出的解决方案是:
在index入口文件中显式绑定index模块:
<?
这样,前台绑定index,后台绑定admin,我们就可以利用常量BIND_MODULE进行路由按模块定义:
<?
经测试,解决后台地址隐藏及路由分模块定义同时没有发现系统异常。