Digital Ocean で Nginx を使用した URL リダイレクト

DigitalOceanで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の移行スクリプトを使用しましたか?Flarumスクリプトではパーマリンクのリダイレクトを処理していないようです。トピックIDがFlarumのIDと一致するように何らかの方法で細工しない限り、提案されているリダイレクトが機能するとは想像できません。

もし何らかの方法でそれを行った場合、提案されていることを行う「パーマリンク正規化」サイト設定があります。それは以下のようなものになります。

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

ただし、スラッグはルーティングで無視されるため、asdasd セクションを - に置き換えることができます。

nginxはDockerコンテナ内にあります。以下を実行すると確認できます。

cd /var/discourse
./launcher enter app

そこで行った変更は、新しいコンテナをビルドすると破棄されます。新しいコンテナがビルドされたときにnginx構成を変更するような、app.yml の変更を行うことは可能です。例については /var/discourse/templates のテンプレートを参照してください。

「いいね!」 2

コマンド ./launcher enter app で Docker に入りました。
Nginx の設定です :slight_smile: 初心者ですみません。

Nginx のどのファイルを設定すればよいですか?このトピックについて何かご存知ですか?
ドメイン名などは、通常このファイルに表示されますか?

最適な解決策は、パーマリンクのリダイレクトが自動的に作成されるように、マイグレーションスクリプトを更新することです。

nginx を直接設定しないでください。これらの変更は、コンテナがアップグレードのために再構築されるたびに破棄されます。

代わりに、@pfaffman が言うように、app.yml を編集して nginx の設定を変更してください。

「いいね!」 2

app.yml で変更を行っているのですが、リダイレクトは具体的にどのように行えばよいのでしょうか? :frowning:

ご協力いただけると大変助かります。質問は 150,000 件以上あり、すべてを確認しようとは思いません :frowning:

このようなリダイレクトは初めてで、インターネットで調べてもあまり情報が見つかりませんでした。

リダイレクトを rewrite で記述した場合、私が望むのは以下のようになります。

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

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

123123 は不要なのですが、どのようにすればよいでしょうか?

宛先にはトピックIDが必要です。スタブはオプションです。

「いいね!」 1

スラッグセクションがあれば十分ではないでしょうか?

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

例えば、上記のリンクをクリックすると、このページが開きます。

そのため、235297と書く必要はありません。

https://meta.discourse.org/t/cake/235297/ スラグはリダイレクトに影響しません。IDの前に何があっても構いません。

https://meta.discourse.org/t/235297/ スラグを完全に削除することもできます。

https://meta.discourse.org/t/redirect-url-with-nginx-in-digital-ocean/ これは機能しますが、より壊れやすいです。

「いいね!」 1

Flarum の id 値とここでの id 値は異なるため、スラグ値で十分です。

150,000 件の質問を一つずつ行うのは残念です。とても疲れました :slight_smile:

だから、インポートスクリプトを修正するのが最も簡単な解決策です

「いいね!」 1

インポートスクリプトにパーマリンクリダイレクトオプションがありませんでした :frowning: Ruby言語とPostgreSQLも初心者です。したいのですが、できません。

他のインポータースクリプトと比較して調査し、実装を試みる方が、150,000件のリダイレクトを手動で作成するよりも、ほぼ間違いなく迅速になります。

「いいね!」 2

それなら、パーマリンクを作成するためにインポートスクリプトを変更するか、誰かに変更を依頼する必要があります。あなたがやろうとしていることは不可能です。トピックIDはすべて異なります。すでにコミュニティを使用しているユーザーがいる場合、運が悪かったか、彼らの投稿をすべて破棄する必要があります。

おお。すみません。import_ids はデータベースにあるはずです。パーマリンクを作成するスクリプトを作成できます。トピックをインポートするのではなく、トピックをインポートした後にリダイレクトを作成するスクリプトを、他のインポートスクリプトで調べる必要があります。

「いいね!」 3

まさにMVP!:man_superhero:

「いいね!」 2

例を挙げます。

さまざまな理由で、適切なスラッグを取得するのが難しい場合があります。通常は、permalink_normalizations を使用して巧妙なことを行い、スラッグを無視してパーマリンクの ID のみに注意を払うことができます。

「いいね!」 4