0

我已经开始将我的博客移动到Octopress的过程,但不幸的是,Jekyll 的限制不允许我在我的永久链接中使用缩写的月份名称。因此,我希望完全摆脱月份日期

我在这篇文章中读到,您可以使用rack-rewrite来处理重定向,因为我使用 Heroku 来托管它。

那我该怎么转:

这个:example.com/journal/2012/jan/03/post-of-the-day/
进入这个:example.com/journal/2012/post-of-the-day/


加分:如果我有另一条重定向/blog/到的规则/journal/,那条规则还会遵守上述规则吗?所以从:

这个:example.com/blog/2012/jan/03/post-of-the-day/
到这个:example.com/journal/2012/jan/03/post-of-the-day/
最后到:example.com/journal/2012/post-of-the-day/

提前感谢您的帮助。:)

4

2 回答 2

2

我的第一个想法是捕捉斜线之间的每一块,然后只显示你想要的。

所以这样的事情会起作用:

// given example.com/blog/2012/jan/03/post-of-the-day/

r301 %r{\/blog\/(.*)\/(.*)\/(.*)\/(.*)\/$}, '/journal/$1/$4/'

这是 Rubular 的链接,以说明我的意思http://rubular.com/r/La6rjrE5Hw

于 2012-07-11T09:21:31.377 回答
1

您希望尽可能具体,这样您就不会意外地重写在遇到新 URL 结构时会失败的其他内容。另请注意,我不知道机架重写,所以我在这一点上遵循 redroot89 的领导。

r301 %r{^\/(:blog|journal)\/([0-9]{4})\/[a-z]{3}\/[0-9]{2}\/(.*)\/$}, '/journal/$1/$2/

这仅捕获年份和 slug,但通过更具体的模式找到其余部分。通过包含 ,(:blog|journal)您可以一次性重定向两个重定向,而无需将两个重定向链接在一起。

于 2012-07-11T13:59:28.380 回答