当页面的 slug 发生变化时,外部链接将不再有效。最好的解决方法是什么?

When the slug of a page changes, external links no longer work. What are the best workarounds?

假设我有这个URL:

http://example.com/title-of-the-post

更新post标题后,URL变为:

http://example.com/updated-title-of-the-post

还可以,除了别人收藏的链接,或者来自外部网站的链接等

我知道向 URL 添加 ID 是一个简单的解决方案:

http://example.com/57884-updated-title-of-the-post

但是,我不想那样。我正在考虑的解决方案是在数据库中保留所有标题更新的记录,如果一个标题不再可用,则与这些更新进行匹配。

最好的解决方案是什么?

没有 'best solution',但一种方法是使用 posts 和 slug table。 将当前的 slug id 存储在 posts table 中,并存储所有日志,并在 slugs table

中引用它们拥有的 post_id

帖子 table:

id | slug_id |othercolums...
1    3         ...

鼻涕虫table

id | post_id | slug
1    1         first-title
2    1         second-title
3    1         current-title

作为奖励,当您通过其 slug 检索 post 时,您可以检查 post 上的 slug_id 是否与搜索到的 slug id 匹配,如果不匹配则执行301 重定向到当前 slug url.

这样搜索引擎应该更新他们的记录。