使用永久链接将旧论坛网址重定向到新的 Discourse 网址

使用永久链接将旧论坛网址重定向到新的 Discourse 网址

如果您使用我们的导入脚本之一从其他论坛软件迁移到 Discourse,那么您可能希望所有来之不易的 Google 搜索结果都能继续指向相同的内容。Discourse 内置了一种处理此问题的方法,作为编写 nginx 规则的替代方案,即使用永久链接查找表permalinks lookup table)。

永久链接表允许您设置两件事:一个要匹配的网址,以及该网址应显示的内容。有几种选项可以定义网址应重定向到何处。设置以下其中一项:

  • topic_id: 用于显示一个主题
  • post_id: 用于显示主题内的特定帖子
  • category_id: 用于显示一个分类
  • tag_id: 用于显示一个标签
  • user_id: 用于显示一个用户个人资料
  • external_url: 用于重定向到可能不属于您的 Discourse 实例的网址

例如,如果您的原始论坛的主题网址是 http://example.com/discussion/12345,而该主题导入后的网址是 http://example.com/t/we-moved/987,那么您可以这样设置映射关系:

cd /var/discourse
./launcher enter app
rails c
Permalink.create(url: '/discussion/12345', topic_id: 987)

Discourse 然后将执行一次重定向,使用 http 响应状态代码 301(永久移动)到主题 ID 12345 的正确网址。301 应该会促使搜索引擎更新其记录并开始使用新网址。

如果您希望某些网址重定向到 Discourse 之外,可以通过设置 external_url 来实现:

Permalink.create(url: '/discussion/12345', external_url: 'http://archived.example.com/discussion/12345')

附加信息

要查找子分类的 ID,您可以按 slug 查找,如下所示:

Category.find_by_slug('products').id

要删除该网址的永久链接,请执行以下操作:

Permalink.find_by_url("/blah").destroy

每个网址只能有一个永久链接记录,因此只需按网址搜索即可。

从 MyBB 到 Discourse 创建主题映射

Discourse 到 WordPress 重定向问题

永久链接规范化


最后由 @SaraDev2022-06-03T20:00:00Z 审核*

37 个赞