使用永久链接将旧论坛 URL 重定向到新的 Discourse URL
如果您已使用我们的导入脚本之一从其他论坛软件迁移到 Discourse,那么您可能希望您辛辛苦苦获得的 Google 搜索结果继续指向相同的内容。Discourse 提供了一种内置方式来处理此问题,作为编写 nginx 规则的替代方案,即使用 永久链接查找表。
永久链接表允许您设置两件事:要匹配的 URL,以及该 URL 应显示的内容。有几种选项可用于定义 URL 应重定向到的位置。设置其中一个:
- topic_id:显示一个主题
- post_id:显示主题内的特定帖子
- category_id:显示一个类别
- external_url:重定向到可能不属于您的 Discourse 实例的 URL
例如,如果您的原始论坛的主题 URL 看起来像 http://example.com/discussion/12345,并且导入后该主题的 URL 是 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 的正确 URL。301 应该会促使搜索引擎更新其记录并开始使用新的 URL。
如果您希望某些 URL 重定向到 Discourse 之外,可以通过设置 external_url 来实现:
Permalink.create(url: '/discussion/12345', external_url: 'http://archived.example.com/discussion/12345')
附加信息
要查找子类别的 ID,可以通过其 slug 来查找,如下所示:
Category.find_by_slug('products').id
要删除该 URL 的永久链接,请执行此操作:
Permalink.find_by_url("/blah").destroy
每个 URL 只能有一个永久链接记录,因此只需按 URL 搜索即可。
从 MyBB 创建到 Discourse 的主题映射
Discourse 到 WordPress 的重定向问题
https://meta.discourse.org/t/discourse-to-wordpress-redirect-questions/87031
永久链接规范化
最后由 @SaraDev 于 2022-06-03T20:00:00Z 审核