百度抓取失败 返回HTTP头:HTTP/1.1 040 Server: Date:Content-Length:的解决方法
最新补充:
该问题 如果你和我一样用了宝塔的nginx环境,请尝试更换为Apache 2.4 重新做一次SSL配置,和301!目前我使用该方法完美解决!老法子不行
——————-老方法———————-
记录一次百度抓取诊断失败的 经历
新站 使用百度抓取诊断出现错误,返回HTTP头:
HTTP/1.1 040
Server: nginx/1.8.1
Date: Fri, 07 Aug 2020 18:03:16 GMT
Content-Length: 0
Connection: close
程序是wordpress,最终经过三天的实验找出,是做了百度HTTPS认证和使用了wp某种伪静态代码造成,
解释虚线前 为默认wp伪静态,虚线后事为了过百度的https 验证而加的重定向!取消百度HTTPS认证删除虚线后的抓取就正常了!
如果你的程序不是wp,遇到同样的问题(已经帮一位朋友解决了某CMS同样抓取错误的问题)。首先请尝试取消百度HTTPS认证,让抓取回到http状态,然后尝试再次抓取诊断,如果取消百度HTTPS认证恢复http后抓取正常,那么请把目光锁定在http跳转https 这个节点上。其实正常使用https就行 我个人觉得可以不过百度的那个认证!
location / { try_files $uri $uri/ /index.php?$args; } rewrite /wp-admin$ $scheme://$host$uri/ permanent; ------------------------------------------------------- if ($server_port ~ "80"){ set $rule_0 1$rule_0; } if ($rule_0 = "1"){ rewrite ^/(.*)$ https://www.XXXX.com/\ permanent; }
记录完毕,目前已解决!
补充:如果使用CDN的话则不受此影响,因为百度HTTPS认证后 抓取的链接 返回200 网页直接储存在CDN服务器不回源!