由于博客文章是托管在Giuhub上的,用Cloudflare Page代理,最近在百度收录网站时,频繁遇到308问题或者访问不上问题,起初以为是Cloudflare 外网问题,后来查找多方资料后才明白:Cloudflare Page 会将 .html 文件请求 重定向到 去掉 .html 后缀的地址 。导致百度收录网站时显示网页 308 跳转。

问题的根源

Cloudflare Page 会将 .html 文件请求 重定向到 去掉 .html 后缀的地址 。导致百度收录网站时显示网页 308 跳转。也就是跳转到的最终网址是https://geekland.top/xxx,而不是https://geekland.top/xxx.html,这明显不符合百度的收录要求。

解决方法

解决方法就是再文件上后缀再加.html,Cloudflare Page 重定向后就会显示 一层 .html。如 Cloudflare Page 文件链接为 https://geekland.top/xxx.html.html。这样访问后重定向后就会显示 https://geekland.top/xxx.html。符合百度验证的要求。

后续问题

如果之前hexo没有配置skip_render,那么经过上面修改文件名之后,大概率还是有问题的,这是因为hexo会把.html.html重新编译,如果您打开public文件夹下的html文件,对比百度下载下来的文件,就会发现不同,这个时候我们需要做的是不让hexo去编译html文件,就需要到hexo的配置文件中的skip_render配置项配置为:skip_render: '*.html.html',最终重新编译上传就可以了