GitHub Pages返回HTTP/1.1 301而非200,Facebook分享异常求助
GitHub Pages站点Facebook分享图片不显示+403错误的排查与解决
问题背景
此前托管在GitHub Pages的站点分享到Facebook一切正常,今日突然出现分享链接时图片无法显示的问题。使用Facebook分享调试工具测试URL,所有页面均返回403错误(而非预期的200 OK)。通过curl -I命令测试域名,发现返回301永久重定向:
C:\Users\owner>curl -I nuttyskitchen.co.uk HTTP/1.1 301 Moved Permanently Connection: keep-alive Content-Length: 162 Server: GitHub.com Content-Type: text/html Location: https://www.nuttyskitchen.co.uk/ X-GitHub-Request-Id: 2D99:185178:589C03:59F3D4:66D1E682 Accept-Ranges: bytes Age: 0 Date: Fri, 30 Aug 2024 15:34:27 GMT Via: 1.1 varnish X-Served-By: cache-ams2100087-AMS X-Cache: MISS X-Cache-Hits: 0 X-Timer: S1725032067.025061,VS0,VE103 Vary: Accept-Encoding X-Fastly-Request-ID: 7fa3d6e4e6e2f3f8ddf54a373998275196ceecc1
对比正常站点的curl响应(返回200 OK):
C:\Users\owner>curl -I example.com HTTP/1.1 200 OK Accept-Ranges: bytes Age: 484008 Cache-Control: max-age=604800 Content-Type: text/html; charset=UTF-8 Date: Fri, 30 Aug 2024 16:56:48 GMT Etag: "3147526947+gzip" Expires: Fri, 06 Sep 2024 16:56:48 GMT Last-Modified: Thu, 17 Oct 2019 07:18:26 GMT Server: ECAcc (nyd/D17F) X-Cache: HIT Content-Length: 1256
排查与解决步骤
检查GitHub Pages域名配置
301重定向说明裸域名(nuttyskitchen.co.uk)被设置为跳转至带www的域名。Facebook爬虫处理重定向时可能触发权限问题,需确认:- 仓库Pages设置中,自定义域名已正确配置,且
Enforce HTTPS选项处于开启状态 - 域名DNS记录无误:A记录指向GitHub Pages官方IP,CNAME记录指向
<用户名>.github.io,无错误重定向规则
- 仓库Pages设置中,自定义域名已正确配置,且
验证爬虫访问权限
403错误大概率是Facebook爬虫被拦截,需排查:- 站点
robots.txt文件,确保未禁止facebookexternalhit爬虫(比如全局Disallow: /会阻断所有爬虫访问) - 若站点使用第三方安全工具(如防火墙),需将Facebook爬虫IP段加入白名单
- 站点
直接分享完整带www的HTTPS URL
既然裸域名会重定向,直接分享https://www.nuttyskitchen.co.uk/这类完整URL,跳过重定向环节,避免爬虫跳转时触发403。同时使用Facebook分享调试工具重新抓取该URL,强制刷新缓存。清除两端缓存
- 在GitHub Pages设置页面,点击
Save按钮重新触发部署,清除Pages缓存 - 在Facebook分享调试工具中,多次点击
Scrape Again按钮,刷新Facebook端的页面缓存
- 在GitHub Pages设置页面,点击
内容的提问来源于stack exchange,提问作者Fishbite
相关产品推荐
相关产品推荐

