将 phpBB3 论坛迁移到 Discourse

您是指在 /admin/site_settings/category/all_results 中搜索 permalink_redirects?我的设置中没有这个选项。

但是 permalink_normalizations 有点作用,使用 /^forum\\/(view.*)/\\1

  • 所有 phpBB 链接都以 view 开头,例如 viewtopic.phpviewforum.php。实际上,在我们的案例中,这似乎是唯一迁移的两个 URL,因此正则表达式可以加强,或者分成两个以进行完全路径匹配。
  • 因此,该正则表达式(sed 语法)会获取所有以 /forum/view 开头的 URL,并删除 forum/ 部分。

现在我们只需要在 Web 服务器(或我们的情况是 Cloudflare)上将所有 /phpbb/(我们旧论坛的路径)重定向到 /forum/,剩下的由 Discourse 处理。早知道这样的话,三年前就应该找到这个方法,而不是破坏所有反向链接 :smiling_face_with_tear:

但请告诉我 permalink_redirects 应该在哪里,也许它需要一个插件,或者它是 phpBB 导入插件的一部分等等?

编辑:效果很好:

root@micha:~# curl -IL https://dietpi.com/phpbb/viewtopic.php?p=46083
HTTP/2 301
location: /forum/viewtopic.php?p=46083

HTTP/2 301
location: https://dietpi.com/forum/t/is-there-a-simple-launch-page-for-dietpi/11237/1
x-discourse-route: permalinks/show

HTTP/2 200
x-discourse-route: topics/show

第一个重定向 /phpbb => /forum 在 Cloudflare 通过重定向规则完成,以避免给我们的源服务器带来微不足道的负载。第二个重定向到实际主题由 Discourse 通过永久链接完成,通过永久链接规范化删除开头的 forum/,以匹配 phpBB 导入插件添加的永久链接,这些永久链接既不包含旧的也不包含新的论坛子目录路径。