Alshain
(Alshain)
1
DigitalOceanでDiscourseをすぐに使えるようにセットアップしました。
FlarumからDiscourseへリダイレクトしたいのですが、nginxフォルダが見つかりません。
/etc/ - /usr/フォルダを探しましたが、見つかりませんでした。Dockerが使用されているため見つからないのでしょうか?
管理画面から正規表現でリダイレクトできますか?
Flarum: https://testdiscourse.com/d/123123-asdasd
Discourse : https://testdiscourse.com/t/asdasd/123123
上記のようにリダイレクトしたいのですが、nginxフォルダが見つかりません。お手伝いいただけると幸いです。
また、正規表現コードを共有していただけると幸いです 
pfaffman
(Jay Pfaffman)
2
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
Alshain
(Alshain)
3
コマンド ./launcher enter app で Docker に入りました。
Nginx の設定です
初心者ですみません。
Nginx のどのファイルを設定すればよいですか?このトピックについて何かご存知ですか?
ドメイン名などは、通常このファイルに表示されますか?
Stephen
(Stephen)
4
最適な解決策は、パーマリンクのリダイレクトが自動的に作成されるように、マイグレーションスクリプトを更新することです。
nginx を直接設定しないでください。これらの変更は、コンテナがアップグレードのために再構築されるたびに破棄されます。
代わりに、@pfaffman が言うように、app.yml を編集して nginx の設定を変更してください。
「いいね!」 2
Alshain
(Alshain)
5
app.yml で変更を行っているのですが、リダイレクトは具体的にどのように行えばよいのでしょうか? 
ご協力いただけると大変助かります。質問は 150,000 件以上あり、すべてを確認しようとは思いません 
このようなリダイレクトは初めてで、インターネットで調べてもあまり情報が見つかりませんでした。
リダイレクトを rewrite で記述した場合、私が望むのは以下のようになります。
https://testdiscourse.com/d/123123-asda-asdasd-adas
https://testdiscourse.com/t/asda-asdasd-adas
123123 は不要なのですが、どのようにすればよいでしょうか?
Stephen
(Stephen)
6
宛先にはトピックIDが必要です。スタブはオプションです。
「いいね!」 1
Alshain
(Alshain)
7
スラッグセクションがあれば十分ではないでしょうか?
https://meta.discourse.org/t/redirect-url-with-nginx-in-digital-ocean
例えば、上記のリンクをクリックすると、このページが開きます。
そのため、235297と書く必要はありません。
Stephen
(Stephen)
8
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
Alshain
(Alshain)
9
Flarum の id 値とここでの id 値は異なるため、スラグ値で十分です。
150,000 件の質問を一つずつ行うのは残念です。とても疲れました 
Stephen
(Stephen)
10
だから、インポートスクリプトを修正するのが最も簡単な解決策です
「いいね!」 1
Alshain
(Alshain)
11
インポートスクリプトにパーマリンクリダイレクトオプションがありませんでした
Ruby言語とPostgreSQLも初心者です。したいのですが、できません。
Stephen
(Stephen)
12
他のインポータースクリプトと比較して調査し、実装を試みる方が、150,000件のリダイレクトを手動で作成するよりも、ほぼ間違いなく迅速になります。
「いいね!」 2
pfaffman
(Jay Pfaffman)
13
それなら、パーマリンクを作成するためにインポートスクリプトを変更するか、誰かに変更を依頼する必要があります。あなたがやろうとしていることは不可能です。トピックIDはすべて異なります。すでにコミュニティを使用しているユーザーがいる場合、運が悪かったか、彼らの投稿をすべて破棄する必要があります。
おお。すみません。import_ids はデータベースにあるはずです。パーマリンクを作成するスクリプトを作成できます。トピックをインポートするのではなく、トピックをインポートした後にリダイレクトを作成するスクリプトを、他のインポートスクリプトで調べる必要があります。
「いいね!」 3
pfaffman
(Jay Pfaffman)
15
例を挙げます。
さまざまな理由で、適切なスラッグを取得するのが難しい場合があります。通常は、permalink_normalizations を使用して巧妙なことを行い、スラッグを無視してパーマリンクの ID のみに注意を払うことができます。
「いいね!」 4