今天上班的时候,有一个用户反映博客登陆不了了。
因为最近做了整合方面的改动,我第一反应是难道这方面有问题?可是自己测试什么问题都不存在。后来用户抓图来看,是登陆表单的位置一片空白。
于是远程协助帮她处理。一般情况下,有人正常有人不正常都会是缓存的问题或者浏览器设置的问题。所以我首先做的也就是这两件事。可是处理之后问题依旧。在用户电脑上打开网页源代码,发现登陆表单是个JS脚本。代码输出正常的。该JS路径在我的电脑上访问就一切正常,而在用户的电脑上则访问不到。测试的时候进一步发现,用户的电脑上似乎只能访问我们博客系统的html静态文件,所以asp文件都返回404错误。
这种问题以前确实没有遇到。只遇到过静态文件可以访问动态脚本不能访问的,那都是IIS的问题,服务器端的问题。于是要从代码下手了。
打开login.asp(登陆脚本就是由它输出的),源代码头部首先就看到ChkSpider这个函数。我知道这是检测搜索引擎的,如果发现客户端是搜索引擎,直接截断输出。难道是这个有问题?,首先把这行代码注释了,刷新页面,登陆窗口正常显示了。
后来用户又在访问User_Index.asp的时候遇到同样的问题,看来改具体文件不是办法了,打开Class_Sys.asp文件,找到ChkSpider这个函数,进入函数后直接让它Exit Function。再测,问题全都没了。
这个问题一般情况下很难遇到,但是实际上几率并不算特别小,只要用户计算机名称包含了google、sohu、sina、soso、baidu、yahoo等字符串(不用严格等同于Spider的名称,只要包含相关字符串),就会被当作是Spider来处理。
看来Oblog的这个检测逻辑需要改进一下了。要么,对常用Spider的名称做精确匹配,要么,就换一种方式来检测吧。这个本身并没有问题的代码,跟千奇百怪的计算机名称撞车的可能性还是很大的。
作者:小李刀刀
原文链接:Oblog检测搜索引擎的一个问题
裁纸刀下版权所有,允许非商业用途转载,转载时请原样转载并标明来源、作者,保留原文链接。
刀刀你博客RSS输出有问题,本文的网址输出为http://wukangrui.netread-293.html/,少了一个/
正常的呀???没少中间那个 / , 也没多后面那个 / 哦。