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

最近苏南大叔仔细查看了博客的服务器日志,发现了一个令人震惊的事实。那就是,某些情况下,百度带来的流量,居然访问到了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,并没有出现这种状态。聪明的读者,您知道,这种怪异的现象,到底是怎么产生的么?

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

欢迎转载传播本篇原创文章,转载请保留链接及作者信息。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

苏南大叔需要你的支持

打赏任意金额,发送截图到邮箱 shang@newsn.net ,可以领取精选回馈如下(任选其一):
  • 《前端视频教程大礼包》一套
  • 《wordpress精选皮肤》一套
  • 《dedecms织梦精选模板》一套
感谢您的打赏,让我更有动力,将更多精彩教程文章,呈现给大家!谢谢!

岁月静好

关注互联网发展,关注苏南大叔的《程序如此灵动~》博客
本文章来自:程序如此灵动~
博客地址为:https://newsn.net/
原文地址为:https://newsn.net/say/typecho-baidu-404.html
上一篇好文:宝塔面板配置bug导致php上传失败的捉虫经历
下一篇好文:winform编程找回vs2015的工具箱

如果您转载了本文章,出于某种原因,并没有注明作者或者出处。
在这里,苏南大叔也表示理解和支持。因为苏南大叔深深地明白:
您会在合适的时机,合适的地方,给本博客一个外链。对吧?
您若开心,便是安好!岁月静好,但愿世界和平,没有纷争~