typecho 不能正常接收百度引流的解决方案
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
最近苏南大叔仔细查看了博客的服务器日志,发现了一个令人震惊的事实。那就是,某些情况下,百度带来的流量,居然访问到了404
页面!可以想像的出,访客们看到苏南大叔设置的404
页面时的悲伤表情。但是!页面是真实存在的!并没有404
!
据苏南大叔推测,这个应该是某一版百度搜索的bug
!据猜测,应该是固化在第三方代码中的那种百度代码的bug所导致的。而且似乎,比重还是不小的。欲知详情,请阅读下面的内容!
症状描述
下面截图一张,展示一下,这个404
页面的形成过程。
在图中我们可以看到,这个由百度带来的流量,错误的添加了参数到苏南大叔的html
页面上,但是却没有拼接出加参数所必须的?
符号。这个是不能接受的事情,html页面由此就404
了。真心是一个由问号引发的大bug
啊。
解决方案
苏南大叔临时写了个小的poc
,放在了index.php
里面,如果发现,我的html
文件后面直接跟着&
符号的时候,就给它替换成?
符号。问题临时得到解决。
$uri=trim($_SERVER["REQUEST_URI"]);
if(!strstr($uri,".html&")===FALSE){
header("Location:".str_replace(".html&",".html?",$uri),301);
exit();
}
深入探讨
仔细看症状,发生这种事情的大多数情况下,百度给html
文件,生硬添加的参数都是类似&wd=&eqid=
的。所以,寻找这种情况的发生场景就是重点了。根据agent
信息描述,这种情况,可能有较大几率发生于firefox43
中,但是苏南大叔专门下载了一个firefox43
,并没有出现这种状态。聪明的读者,您知道,这种怪异的现象,到底是怎么产生的么?
更多typecho
相关经验文字,请点击:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。