如何将Netlify托管的旧Jekyll站点重定向至新地址?
解决Netlify上Jekyll站点重定向无效的问题
看起来你遇到的问题集中在几个容易忽略的配置细节上,我帮你一步步排查和修正:
1. 先修正_config.yml里的include语法
你的include: - _redirects写法在YAML语法里可能无法被Jekyll正确解析,Jekyll需要明确的数组格式才能识别要包含的文件。请改成以下两种格式之一:
格式一(缩进式数组):
include: - _redirects
格式二(方括号式数组):
include: [_redirects]
修改后运行jekyll build,检查_site目录下是否出现了_redirects文件——如果没有,说明Jekyll还没把它复制到部署目录,Netlify自然读不到重定向规则。
2. 替换_redirects里的示例域名
你现在的_redirects文件用的是Netlify文档里的示例域名(jekyll-comments.demo.ed.community等),这和你实际的old.address.com完全不匹配,规则当然不会生效!请把规则替换成你自己的域名:
# 替换为你实际的旧域名和目标新域名 https://old.address.com/* https://new.address.com/:splat 301! http://old.address.com/* https://new.address.com/:splat 301!
这里的301!是强制永久重定向,确保浏览器缓存该规则,写法本身没问题。
3. 确认Netlify的域名配置是否正确
- 你需要在Netlify站点的「Domain management」中,把
old.address.com添加为自定义域名(别名),并且完成DNS解析配置(比如CNAME指向你的Netlify站点域名,或者A记录指向Netlify的官方IP地址)。 - 如果
old.address.com没在Netlify的域名列表里,哪怕_redirects规则写得再正确,Netlify也不会处理这个域名的请求。
4. 检查Netlify部署日志
部署完成后,去Netlify的「Deploys」页面查看部署日志,搜索关键词redirect:
- 如果看到类似
Processing redirect rules from _redirects的提示,说明文件已经被正确识别; - 如果没看到相关提示,那就是
_redirects没被部署到Netlify服务器,回到第一步重新检查include配置。
最后建议你先本地运行jekyll build,确认_site目录里有_redirects文件且内容正确,再推送到Netlify重新部署,这样能快速排除本地构建环节的问题。
内容的提问来源于stack exchange,提问作者KajMagnus
相关产品推荐
相关产品推荐

