Digital Ocean 中使用 Nginx 重定向 URL

我已经在 Digital Ocean 上设置好了 Discourse。
我想从 Flarum 重定向到 Discourse,但我找不到 nginx 文件夹。

我在 /etc/ - /usr/ 文件夹中查找过但找不到。是因为使用了 Docker 所以找不到吗?

我可以在管理界面通过正则表达式进行重定向吗?

Flarum:https://testdiscourse.com/d/123123-asdasd
Discourse:https://testdiscourse.com/t/asdasd/123123

我想像上面那样重定向,但我找不到 nginx 文件夹。如果你能帮我,我将不胜感激。
另外,如果你能分享正则表达式代码,我将不胜感激 :slight_smile:

您是执行了标准安装,还是 flarum 与 Discourse 运行在同一主机上?

您是否使用了 flarum 迁移脚本导入数据?看起来 flarum 脚本并不处理永久链接重定向。我无法想象您建议的重定向如何能奏效,除非您以某种方式使 Discourse 中的主题 ID 与 flarum 中的主题 ID 匹配。

如果您以某种方式做到了这一点,有一个 permalink normalization 站点设置可以实现您建议的功能。它看起来会像这样:

     /d\\/(\\d+)-(.*)/t\\/\\2\\/\\1/

但是 asdasd 部分可以用 - 替换,因为路由会忽略 slug。

nginx 位于 docker 容器内。如果您执行以下操作,可以看到它:

cd /var/discourse
./launcher enter app

您在那里所做的更改将在您构建新容器时被销毁。您可以修改 app.yml 来在构建新容器时修改容器内的 nginx 配置。您可以查看 /var/discourse/templates 中的模板作为示例。

2 个赞

我使用 ./launcher enter app 命令进入了 Docker。
它在 Nginx 中 :slight_smile: 对不起,我是新手。

我应该在 Nginx 中配置哪个文件?您对此主题有任何了解吗?
域名等通常会出现在此文件中吗?

最佳解决方案是更新迁移脚本,以便为您创建永久链接重定向。

不要直接配置 nginx,因为每次重建容器进行升级时,这些更改都将被销毁。

相反,请按照 @pfaffman 的建议编辑 app.yml 以修改 nginx 配置。

2 个赞

我在修改 app.yml,但具体该如何进行重定向呢?:frowning:

如果您能帮我一下,我将不胜感激。这里有超过 150,000 个问题,我不想一一尝试查找 : (

我以前从未以这种方式重定向过,而且根据我在互联网上的研究,我找不到太多信息。

当我用 rewrite 编写重定向时,我想要的是:

https://testdiscourse.com/d/123123-asda-asdasd-adas

https://testdiscourse.com/t/asda-asdasd-adas

我甚至不需要 123123,该如何实现呢?

您的目的地需要主题 ID,存根是可选的

1 个赞

拥有一个 slug 部分还不够吗?

https://meta.discourse.org/t/redirect-url-with-nginx-in-digital-ocean

例如,当你点击上面的链接时,会打开这个页面。

所以不需要写 235297。

https://meta.discourse.org/t/cake/235297/ 占位符不影响重定向 - ID 之前的任何内容都可以\n\nhttps://meta.discourse.org/t/235297/ 甚至可以完全省略占位符\n\nhttps://meta.discourse.org/t/redirect-url-with-nginx-in-digital-ocean/ 这样也可以,但更不稳定

1 个赞

由于Flarum中的id值和这里的id值不同,slug值对我来说就足够了。

一个一个地处理15万个问题太糟糕了。我太累了 :slight_smile:

这就是为什么修复导入脚本是最简单的解决方案

1 个赞

导入脚本中没有永久链接重定向选项,但 :frowning: 我也是 Ruby 语言和 postgresql 的新手。我很想,但我不能。

与手动创建 150,000 个重定向相比,调查并与其他导入脚本进行比较并尝试实现它们几乎肯定会更快。

2 个赞

那么您需要修改导入脚本,或者请人修改导入脚本来创建永久链接。您试图做的事情是不可能的。主题 ID 都不同。如果您现在已经有用户在使用社区,那么您要么运气不好,要么需要放弃他们的帖子。

哦。抱歉。import_ids 应该在数据库中。您可以编写一个脚本来创建永久链接。您需要查看一些其他的导入脚本,找一个在导入主题后而不是在导入主题函数中创建重定向的脚本。

3 个赞

MVP 在这里!:man_superhero:

2 个赞

这是一个示例:

有时,由于各种原因,很难获得正确的 slug。您通常可以使用 permalink_normalizations 做一些巧妙的事情,忽略 slug,只关注永久链接中的 ID。

4 个赞