使用 Hakyll 重定向旧 URL(和子域)
Redirect old URLs (and subdomains) with Hakyll
我正在尝试将我的网站从 Blogger 迁移到 Hakyll(然后我将其部署到 Github 页面),但我不希望所有旧链接都断开。另外,我的旧帖子都在 blog.domain.com/ 中,而现在它们将在域中。com/posts/。更重要的是,Blogger 中的 URL 仅包括月份和年份,而在 Hakyll 中它们还包括日期,这意味着我几乎肯定必须手动执行操作。快速 Google 搜索没有找到答案,而且我对如何编写网站的知识不足以解决我自己的问题。
我尝试从
重定向的格式示例
blog.domain.com/2015/09/title.html
我想将映射到
domain.com/posts/2015-09-08-title.html
编辑:I found something that ought to work, but doesn't。完全按照示例文件中的方式设置重定向后,出现以下两个错误之一:
1) unexpected character \n
或
2) expected ListField but got StringField
解决这个问题需要一些不同的技巧。
其中一部分可能是特定于 NameCheap 的,但我所要做的就是设置从 blog.domain.com 到 domain.com 的重定向,如 this tutorial.
另一部分是让 Hakyll 为路由做正确的事情。在处理了 gsubRoutes
函数的一个特性之后,结果证明这相当简单(代码 here)。
我正在尝试将我的网站从 Blogger 迁移到 Hakyll(然后我将其部署到 Github 页面),但我不希望所有旧链接都断开。另外,我的旧帖子都在 blog.domain.com/ 中,而现在它们将在域中。com/posts/。更重要的是,Blogger 中的 URL 仅包括月份和年份,而在 Hakyll 中它们还包括日期,这意味着我几乎肯定必须手动执行操作。快速 Google 搜索没有找到答案,而且我对如何编写网站的知识不足以解决我自己的问题。
我尝试从
重定向的格式示例blog.domain.com/2015/09/title.html
我想将映射到
domain.com/posts/2015-09-08-title.html
编辑:I found something that ought to work, but doesn't。完全按照示例文件中的方式设置重定向后,出现以下两个错误之一:
1) unexpected character \n
或
2) expected ListField but got StringField
解决这个问题需要一些不同的技巧。
其中一部分可能是特定于 NameCheap 的,但我所要做的就是设置从 blog.domain.com 到 domain.com 的重定向,如 this tutorial.
另一部分是让 Hakyll 为路由做正确的事情。在处理了 gsubRoutes
函数的一个特性之后,结果证明这相当简单(代码 here)。