首页 > 解决方案 > Jekyll 基于日期重定向

问题描述

我有一个网站,我认为它完全是静态的,因此非常适合 Jekyll。大致是这样的想法:

index.md
dir1/day2018-10-25.md
dir1/day2018-10-26.md
...
dir1/day2018-12-31.md

考虑到现在每个页面都可以完美运行。我要添加的是用户浏览到表单的 URL/today并将其重定向到dir1/day2018-10-262018 年 10 月 26 日的能力,但是浏览到/today下个月的用户将被定向到相关页面。

插件 jekyll-redirect-from 似乎不是解决此问题的正确工具。它可以让我/today在任何指定页面中将其列为重定向,但我无法每天将其从一个页面转移到下一个页面。

我不知道这是否是一个重要的考虑因素,但我正在使用 GitHub Pages 为页面提供服务(以防万一施加任何额外的限制或提供额外的选项)。

每天进行不同重定向的想法无疑是有点动态的……但感觉它是如此明确和预先定义的,它应该是可以实现的。Jekyll 可以处理这样的重定向要求吗?

标签: redirectjekyllgithub-pages

解决方案


最简单的方法是使用 javascript 重定向:

var date = Date.now()
var day = Date.getDate()
var month = Date.getMonth()
var year = Date.getFullYear()
var redirect = "/dir1/day" + year + "-" + month + "-" + day + ".md"
windows.location.replace(redirect)

你也可以使用Jekyll 钩子插件来做到这一点,它会每天调整你的 today.html。此解决方案的唯一缺点是您的网站必须每天构建才能更新您的重定向。

第三种解决方案是将您的站点托管在 Netlify 并使用占位符配置重定向。


推荐阅读