如何将旧的Netlify + Jekyll网站地址重定向到新地址?

时间:2018-01-22 10:09:53

标签: jekyll netlify

我在old.address.com创建了一个在Netlify上托管的Jekyll网站。现在我想重定向到new.address.com。但Netlify文档似乎不起作用或我不理解文档。这就是我所做的:

我添加到_config.yml :(因为Netlify说Jekyll排除'_...'文件)

include:
  - _redirects

我添加了一个_redirects文件。我只是将Netlify生成的指令复制粘贴到该文件中,这是内容:

# Redirect domain aliases to primary domain
https://jekyll-comments.demo.ed.community/* https://jekyll-demo.talkyard.io/:splat 301!
http://jekyll-comments.demo.ed.community/* https://jekyll-demo.talkyard.io/:splat 301!
https://jekyll.demo.talkyard.io/* https://jekyll-demo.talkyard.io/:splat 301!
http://jekyll.demo.talkyard.io/* https://jekyll-demo.talkyard.io/:splat 301!

这没有效果。 问题是什么/我做错了什么?

这就是目录的样子:

$ ls -1
404.html
about.md
_config.yml
Gemfile
_includes
index.md
_layouts
_posts
_redirects     <—— added as per Netlify's instructions
_sass
_site

$ ls -1 _posts/
2018-01-01-like-about-jekyll.markdown
2018-01-02-installation-instructions.markdown
2018-01-02-kind-creatures.markdown

配置文件只是默认配置文件:

title: ...
email: ...
baseurl: "" # the subpath of your site, e.g. /blog
url: "" # the base hostname & protocol for your site, e.g. http://example.com
twitter_username: ...
github_username:  ...

# Build settings
markdown: kramdown
theme: minima
plugins:
  - jekyll-feed

talkyard_comments_server_url: ...

include:
  - _redirects

请注意,虽然上面有相当多的详细信息,但只是各种默认内容。所以这不是我的问题所特有的。它应该适用于所有新的Jekyll网站。

1 个答案:

答案 0 :(得分:3)

免责声明:我为Netlify工作

我们在文档中有一个特定的部分:https://www.netlify.com/docs/redirects/#handling-hostnames-and-protocols-differently

...并且您的代码段应该可以使用,因为它遵循这些约定。

完成这项工作的唯一先决条件是:

1)您在我们的UI中配置了您的站点以回答所有这些名称 - 所以:

jekyll-comments.demo.ed.community
jekyll-demo.talkyard.io
jekyll.demo.talkyard.io

2)并且DNS中的所有名称都设置相同(CNAME到yournetlifysitename.netlify.com)

添加&#34;额外&#34;的唯一方法Netlify配置的名称是域别名,它们在&#34; main&#34;旁边的域设置面板中配置。自定义域名。

由于您的_redirects看起来对我来说是正确的,如果您按照建议配置了先决条件,那么最有可能的失败模式是您不会因为某些原因而实际应用重定向(通常是 - 他们没有&#39 ;部署是因为它们并没有存在于名为_redirects的文件中,在发布文件夹中,在构建之后),但是jekyll配置中的include应允许该文件在该位置保留。那个jekyll配置是&#34;对&#34;这样做的方法,但对于其他网站生成器,我们有时建议人们在构建后将重定向复制到位:jekyll build && cp netlify_redirects.txt _site/_redirects

您可以下载部署中的任何文件,以检查他们的最终状态&#34;通过任何成功的部署日志页面中的这个小图标:

deploy logs and icon example

通过快速查看您的站点配置,它们似乎已部署并正常运行:

$ curl -v https://jekyll-comments.demo.ed.community/ -o /dev/null
* Connected to jekyll-comments.demo.ed.community (35.199.180.1) port 443 (#0)
[...]
< HTTP/1.1 301 Moved Permanently
[...]
< Location: https://jekyll-demo.talkyard.io/

所以我猜下一个问题是......你们是如何测试的?