大家好,电脑装机网站源码分享相信很多的网友都不是很明白,包括装机网站推荐也是一样,不过没有关系,接下来就来为大家分享关于电脑装机网站源码分享和装机网站推荐的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
前言:作为一个刚接触服务器取证的新手,最近遇到了一个ThinkPHP网站的难题。我在将服务器镜像仿真,网站配置好的情况下,找不到网站后台入口地址。不过在经过我的不(BAI)懈(DU)努(SOU)力(SUO)下,找到了最终的入口地址。
首先,先将镜像用工具先仿真。
当时的题目是:将网站后台入口地址改成“GYS”,并通过http(s)://域名/Gys访问网站的后台,并截图后台界面。
之前对ThinkPHP框架只是做了一个初步的了解。在ThinkPHP5与之前版本的框架结构是不一样的,这可能意味着ThinkPHP默认入口地址会不同,所以我先对网站ThinkPHP框架的版本进行了查找。
我使用了最简单查找ThinkPHP版本的方法,将源码下载到本地,使用FileLocatorPro工具进行检索。这个FileLocatorPro是一个无索引全文搜索的工具,目前我个人用的是比较多的。ThinkPHP默认储存版本号的关键字是“THINK_VERSION”,我们通过关键字对网站源码进行查找,找到了网站是采用ThinkPHP5.1版本进行设计的。
那么我们有针对性的去搜索一下“ThinkPHP5.1”默认的后台入口地址是什么。通过查找,ThinkPHP5可以通过application下的config.php文件查看到入口地址,那么我们找到这个目录。
这套源码的Config文件在/Application/Common/Conf目录下面。
找到了疑似网站后台登陆入口,这里有两个关键字,一个是“login”一个是“admin”,那开始我并不清楚哪个是正确的入口,干脆都访问试一下吧。
访问“login”发现可以正常进入到网站后台,我也发现后面有一个备注,提示“模块路由映射”,为了搞清楚为什么是“login”入口地址,再次使用万能的百度。经过一系列的资料查询发现,在ThinkPHP中,如果不希望用户直接访问某个模块,可以设置模块映射(对后台的保护会比较实用)。
代码:&39;=>array(&39;=>&39;),这个xxx就是可以修改成我们需要的入口字符。设置了模块映射后,原来的Admin模块将不能访问,只能访问我们修改后的xxx模块。
我们访问http://域名/Admin将会报模块不存在的错误,而http://域名/test则可以正常访问Admin模块。如果还有“MODULE_ALLOW_LIST”参数,还需要把“xxx”替换进去才能生效。
代码:&39;=>array(&39;,&39;,&39;),要将“Admin”替换成我们修改后的样子,也就是&39;=>array(&39;,&39;,&39;)。
我们回到题目上来,我们将“URL_MODULE_MAP”参数修改一下,是不是就可以了?&39;=>array(&39;=>&39;)。
怎么回事?竟然提示“无法加载模块:Gys”。
明明已经修改完成了,为什么还是报错呢?是不是有浏览器缓存。那我直接将浏览器缓存、WEB服务器、PHP全部重启。
还是不行,难道是ThinkPHP有缓存文件?代码里有一段确实写的获取实际的模块名。
带着疑问,我们再次请教“度娘”,有针对性的去搜索“ThinkPHP缓存文件、目录”等关键字。
定位到了问题,ThinkPHP下有缓存目录“runtime”。第一次运行时,如果没有开通app_debug会产生runtime.php文件,以后每次运行都会判断是否开启,并且是否有runtime文件,如果有则使用,没有则创建。
在这个Runtime目录下有缓存文件,如果是新增或者修改字段,需要清除缓存文件。否者我们会发现,怎么修改都不起作用。可以把整个Runtime文件夹都删除。
其实我们到缓存文件里找一下“URL_MODULE_MAP”的参数还是之前的“login”。
为了判断这个方案是否正确,我将缓存文件里的“login”改为“ceshi”试一下。
成功访问,看来就是这个缓存文件在作怪。
接下来我们直接删除这个缓存文件。
如果没生效就重启一下Nginx服务,或是清除一下浏览器缓存,再重新访问我们之前在Config.php设置好的“Gys”入口地址,这套题目就成功解决了。
最后,这套题目还有其他的坑,例如“某某界面映射后的地址为?”。因为我们设置了模块映射后,有部分url不能进行替换。
后类似如U(&39;)的就不能正确映射,这是由于U函数的问题,更多参数时无法查找到对应映射关系。那么,再一次请“度娘”出山。
将文件Common/functions.php中U方法:
if($maps=C(&39;)){
if($_module=array_search(strtolower($var[$varModule]),$maps)){
$var[$varModule]=$_module;
}
}
修改为:
if($maps=C(&39;)){
$temp=explode($depr,$var[$varModule]);
if($temp[0]=array_search(strtolower($temp[0]),$maps)){
$var[$varModule]=implode($depr,$temp);
}
}
问题解决!这个U方法也给出了解释:thinkphp的u方法用于完成对URL地址的组装,特点在于可以自动根据当前的URL模式和设置生成对应的URL地址。
经过这次搜索学习,又Get到了一个知识点。不过发现最近的服务器镜像题目,网站源码都是ThinkPHP架构的,特别是这种公开的架构,很多配置文件都是在指定目录的,能让我们更快重建网站。
OK,关于电脑装机网站源码分享和装机网站推荐的内容到此结束了,希望对大家有所帮助。