您是指在 /admin/site_settings/category/all_results 中搜索 permalink_redirects?我的设置中没有这个选项。
但是 permalink_normalizations 有点作用,使用 /^forum\\/(view.*)/\\1:
- 所有 phpBB 链接都以
view开头,例如viewtopic.php和viewforum.php。实际上,在我们的案例中,这似乎是唯一迁移的两个 URL,因此正则表达式可以加强,或者分成两个以进行完全路径匹配。 - 因此,该正则表达式(
sed语法)会获取所有以/forum/view开头的 URL,并删除forum/部分。
现在我们只需要在 Web 服务器(或我们的情况是 Cloudflare)上将所有 /phpbb/(我们旧论坛的路径)重定向到 /forum/,剩下的由 Discourse 处理。早知道这样的话,三年前就应该找到这个方法,而不是破坏所有反向链接
。
但请告诉我 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 导入插件添加的永久链接,这些永久链接既不包含旧的也不包含新的论坛子目录路径。