由于博客文章是托管在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'
,最终重新编译上传就可以了