解决PHPWEB系统的“-1”死链问题

  算起来好久没有写什么东西了,貌似一整个月都没写了,所以今天随便写写。虽然这是一篇属于“技术类”的文章,不过我不是当做技术文来写的,还是想到什么说什么好了。这个假期除了下乡和去了一两个地方走走之外,时间占大头的就是去一个学长的公司去实习了。

  我在公司里负责网站的维护优化之类的,公司使用的网站是PHPWEB这一套系统。整个使用下来这套系统还是挺好的,这套系统跟我以前用过的传统的CMS区别还是挺大的,虽然排版、设计之类的操作更加简单了,但是它的各种小问题还是不断。而且由于这是一套闭源的商业整站系统,所以网上能参考的技术文档也比较少,搜索到的东西大部分都是“PHPWEB二次开发”“PHPWEB全套技术支持”之类的商业广告,有技术价值的消息不多。所以基本上遇到什么问题只能自己根据经验来慢慢修缮了,虽然技术操作起来其实对于我个人而言比较简单,但是整体弄下来还是挺有挑战的。

  PHPWEB大小问题不断,不过对于广大建站的站长来说,最头痛的莫过于“-1”的死链的问题了。一旦网站存在大量死链,对于搜索引擎的排名是非常不利的。更何况PHPWEB由于自身的页面构成原因,本身就对搜索引擎不是很友好,所以对它做SEO只能一步步慢慢来了。今天我就简单谈一下我对“-1”死链的解决处理方法。

  在做优化之前我先用“Xenu”这款软件来扫描一下,这是一款非常快速的检测网站死链的软件,扫描结果如下图:
[01]

  可以看到扫描出很多“-1”的死链接,链接的Title是“更多”。(注:我是在本地环境新搭建了一个测试站点的,所以死链只有这几个,但是对于正式上线的PHPWEB网站来说,这样的死链可能会多达20-30多个。)是了,这个“-1”的死链正是由于各种边框的“更多”引起的。我们先来看看造成死链的源文件:
[02]

  通过源文件我们就可以发现问题所在,可是为什么在页面中看不见这个“更多”呢?因为在PHPWEB的边框中,可以设置当有“更多”的设置的时候出现一个链接允许按进去的。但是对于一些模块并不能设置这个“更多”选项,所以在浏览的页面中就看不到这个“更多”出现,但是这并不代表它在网页里面就不存在了。它还是出现在了页面中,只是链接到了“-1”页面。所以就造成了这样的死链。

  开始我以为是模板里面的问题,于是就找了各种“templates”文件夹下面的模板来看,结果发现里面关于这里的代码是不能动的,否则会影响其他需要这个按钮的功能。又因为这套系统是闭源的,并不能通过看它的PHP代码来解决。

  就在这时我突然想到,这些动态的东西应该是存在数据库里面的,于是赶紧打开PhpMyAdmin进入数据库,搜索“-1”。果然搜索到了不少结果,而且基本集中在下图的三个表中:
[03]

  于是过去浏览这几个表,这几个表都存在 morelink 字段,就是这个字段!这个字段下面除了一些已经设置了“更多”链接的是正常的之外,其他的全部都是“-1”,这几个地方应该就是罪魁祸首了。
[04]

  所以我觉得要解决这个问题,只需要把这里面的“-1”替换成正常的值就可以了。刚开始我是想直接替换成空白,也就是留空,但是后来想想,在批量替换中要是替换之后发现没有用的话,要从空白再替换回来构造SQL语句就比较麻烦了(没办法,我没专门去系统的学过SQL语句,只是需要的时候即学即用,高手路过勿喷……╮(╯_╰)╭),所以我就打算把这些“-1”都替换成“#”,至于为什么拿“#”去链接,大家自己去恶补HTML吧,我在这里就不解释了。

  SQL的批量替换某个字段还是挺容易的的,语法是“UPDATE 表名 SET 字段名 = replace (字段名,’原字符串’,’新字符串’)”,所以我直接用了下面三行SQL语句来替换:
[05]

  唔,检查一下应该没有什么输入错误,可以执行了。。。。。。
[06]

  很好,成功执行了。这个时候应该就已经大功告成了,我们刷新一下页面重新看看原来造成出错的地方的源文件:
[07]

  看,原来的“-1”已经被替换成“#”了,这一系列的改动在页面上肉眼是看不出任何问题的,所以,替换好了之后还是要祭出“Xenu”来,重新扫描一下这个网站的死链接:
[08]

  唔,从扫描的结果可以看到,已经不存在那种“-1”的死链接了。经过这样的设置之后,就不需要再为网站的“-1”死链问题头痛纠结啦~当然,另外原因的死链还是要继续另外去解决的啦。对了,如果在操作之前网站是设置了生成静态页面的话,最好先把生成的HTML全部删掉等系统来重新生成,不然的话一些以前生成的静态页面还是会存在死链的。

  好啦,整体的解决方法就简单介绍到这里,希望大家有什么技术上的技巧一起来分享一下,这样才能共同进步。虽然PHPWEB是一套商业闭源的系统,虽然网上很多人靠着对这套系统的了解来做商业化的技术支持。但是我觉得,开源共享才是未来的节奏,一味的想通过闭源来获利,终究会被时代给抛弃的……

文章目录
|