如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

最近苏南大叔仔细查看了博客的服务器日志,发现了一个令人震惊的事实。那就是,某些情况下,百度带来的流量,居然访问到了404页面!可以想像的出,访客们看到苏南大叔设置的404页面时的悲伤表情。但是!页面是真实存在的!并没有404

据苏南大叔推测,这个应该是某一版百度搜索的bug!据猜测,应该是固化在第三方代码中的那种百度代码的bug所导致的。而且似乎,比重还是不小的。欲知详情,请阅读下面的内容!

症状描述

下面截图一张,展示一下,这个404页面的形成过程。

typecho 不能正常接收百度引流的解决方案 - typecho_404
typecho 不能正常接收百度引流的解决方案(图3-1)

在图中我们可以看到,这个由百度带来的流量,错误的添加了参数到苏南大叔的html页面上,但是却没有拼接出加参数所必须的?符号。这个是不能接受的事情,html页面由此就404了。真心是一个由问号引发的大bug啊。

typecho 不能正常接收百度引流的解决方案 - typecho_404_2
typecho 不能正常接收百度引流的解决方案(图3-2)

解决方案

苏南大叔临时写了个小的poc,放在了index.php里面,如果发现,我的html文件后面直接跟着&符号的时候,就给它替换成?符号。问题临时得到解决。

$uri=trim($_SERVER["REQUEST_URI"]);
if(!strstr($uri,".html&")===FALSE){
    header("Location:".str_replace(".html&",".html?",$uri),301);
    exit();
}

typecho 不能正常接收百度引流的解决方案 - code
typecho 不能正常接收百度引流的解决方案(图3-3)

深入探讨

仔细看症状,发生这种事情的大多数情况下,百度给html文件,生硬添加的参数都是类似&wd=&eqid=的。所以,寻找这种情况的发生场景就是重点了。根据agent信息描述,这种情况,可能有较大几率发生于firefox43中,但是苏南大叔专门下载了一个firefox43,并没有出现这种状态。聪明的读者,您知道,这种怪异的现象,到底是怎么产生的么?

更多typecho相关经验文字,请点击:

 【源码】代码片段及相关软件点此获取

 【php】秘籍文章入口,仅传授于有缘之人   php    seo

本站的忠实读者小伙伴,正在阅读下面这些文章:

欢迎转载传播本篇原创文章,转载请保留链接及作者信息。
欢迎指正文字或逻辑错误,将会择优在文末列出您的信息。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

苏南大叔需要你的支持

感谢您的打赏,让我更有动力,将更多精彩教程文章,呈现给大家!谢谢!