我创建了一个Jekyll网站,该网站托管在Netlify的old.address.com处。现在,我想重定向到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网站。

最佳答案

免责声明:我为Netlify工作

我们的文档中对此有专门的部分:https://www.netlify.com/docs/redirects/#handling-hostnames-and-protocols-differently

...并且您的代码段应该可以正常运行,因为它遵循了这些约定。

进行这项工作的唯一前提是:

1)您已在我们的用户界面中配置了您的网站,以回答所有这些名称-因此:

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


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

向Netlify配置添加“额外”名称的唯一方法是作为域别名,该别名在“主”自定义域旁边的“域设置”面板中进行配置。

由于_redirects对我看来是正确的,因此,如果按照建议的方式配置了先决条件,则最有可能的失败模式是由于某种原因您最终没有实际应用重定向(通常-它们没有部署,因为它们没有在构建后的发布文件夹中的_redirects文件中不存在),但是jekyll配置中的include应该允许该文件保留在该位置。 jekyll config是执行此操作的“正确”方法,但对于其他站点生成器,我们有时建议人们在构建后将重定向复制到适当位置:jekyll build && cp netlify_redirects.txt _site/_redirects

您可以从任何成功的部署日志页面上通过此小图标下载部署中的任何文件,以检查其“最终状态”:

jekyll - 如何将旧的Netlify &#43; Jekyll站点地址重定向到新地址?-LMLPHP

快速浏览您的站点配置,它们似乎已部署并正常工作:

$ 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/


所以我想下一个问题是...您如何测试?

关于jekyll - 如何将旧的Netlify + Jekyll站点地址重定向到新地址?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48379045/

10-11 07:56