当页面的 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.
这样搜索引擎应该更新他们的记录。
假设我有这个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.
这样搜索引擎应该更新他们的记录。