我试图将基于 WordPress 的论坛迁移到 Discourse。
我的旧网址格式如下:
https://example.com/question/questioncontent
而在 Discourse 中,我看到话题的 URI 格式为:
https://example.com/t/questioncontent
因此,我将旧论坛的整个内容复制到了新论坛。由于我不太懂技术,不想冒风险,而旧论坛大约有 18 个帖子,所以我没有使用任何脚本,而是手动复制了所有内容。
现在我的问题是:如何重定向那些已经被搜索引擎收录的旧论坛链接?
我尝试使用“固定链接”(permalink)功能进行重定向,但仍然无法成功。
我是否遗漏了什么?请 anywhere 指导我正确的操作流程。
pfaffman
(Jay Pfaffman)
2
请前往 管理后台 → 自定义 → 固定链接。您可以将 18 个旧 URL 重定向到对应的新主题。
fzngagan
(Faizaan Gagan)
5
我已经编写了一个插件来实现这一点。
将上述内容修改为:
get '/question/:slug', to: redirect('/t/%{slug}')
pfaffman
(Jay Pfaffman)
7
我想不出为什么不,但在没有更多关于你所做操作的信息的情况下,这是无法判断的。不过,我想不出你为什么需要插件。对于 18 版本,你可以手动创建它们,或者也可以使用永久链接规范化一次性完成所有操作。
编辑:永久链接仅适用于外部链接,不适用于 Discourse 内部的链接。通常的做法是重写帖子中的这些链接。
我正在将旧论坛的网址重定向到 Discourse 的新网址,但不知道为什么对我不起作用。
我想确认一下:
假设我的旧网址是 1. forum.example.com/must-read-rules
而 Discourse 的新网址是 2. forum.example.com/t/must-read-rules/47
我需要在“新”字段中输入 1,在“目标”字段中输入 2,对吗?
抱歉问这么基础的问题!
pfaffman
(Jay Pfaffman)
9
您应在 URL 字段中输入 must-read-rules,保持“主题 ID”选项被选中,并在主题 ID 字段中输入 47。如下所示:

Stephen
(Stephen)
11
您是想用它来重定向指向 Discourse 内容的入站链接,还是重定向 Discourse 内部的链接(即页面之间的链接)?
pfaffman
(Jay Pfaffman)
12
没错!固定链接仅适用于传入的 URL。我敢打赌这就是问题所在。
@pfaffman @Stephen 我正在从 WordPress 迁移到 Discourse。我正在将旧的 URL 重定向到 Discourse 生成的 URL。
例如:forum.example.com/question/hey 到 forum.example.com/t/hey
Stephen
(Stephen)
14
入站链接将通过固定链接功能进行重定向。帖子之间的内部链接需要手动修正以反映其新的目标地址,固定链接重定向在此处不会生效。
有哪些可行的方法可以让它生效?
第一个 URL 是我之前的 WordPress 论坛地址,第二个 URL 是我的 Discourse 地址。
我该如何成功地进行重定向?
请问您能告诉我如何编辑代码吗?有相关指南吗?我已经安装了插件,但没找到您提到的需要编辑 slug 的具体位置。
我可以在那里添加多个 URL 吗?
还是只能添加 URL 的结构?