2つのドメイン、条件付きリダイレクト

Discourse のエキスパートの皆様、こんにちは!

3 年間、Discourse フォーラム(DOMAIN1)を運営してきました。現在、議論の範囲を広げ、DOMAIN2 を追加したいと考えています。この投稿のおかげで、Let’s Encrypt を使用して両方のドメインを有効化することに成功しました。この投稿のステップ 1 の後に、両方のドメインを有効な状態に保つことが可能となりました。2 番目のドメインはメインドメイン名へリダイレクトされるよう設定されており、これは問題ありません。

移行の一部として、既存のすべてのカテゴリを新しいトップレベルカテゴリへ移動させる予定です。

DOMAIN2 がメインの Discourse ドメインとなり、DOMAIN1 は外部リンクが引き続き機能するようにリンクされた状態を維持します。

ここで質問です。「バニラ」の DOMAIN1(パスなしのルート URL のみ)が呼び出された場合に、新しいトップレベルカテゴリの URL へリダイレクトするにはどうすればよいでしょうか?パスを含む DOMAIN1 への他のすべての呼び出しは、既存のパスを維持する必要があります(変更なし、すでに動作しています)。これを行うことで、DOMAIN1 にアクセスした全員がカテゴリに到達し、以前とほぼ同じ見た目になるため、混乱を最小限に抑えることができます。

ダブルドメイン構成において、この条件付きリダイレクトを追加する方法について、ご提案があれば幸いです。

よろしくお願いいたします!
Merten

「いいね!」 1

これは難しい問題になります。Discourse のインスタンス 1 つを複数の URL で運用することはできず、トピック表示などの既存のルートに対するパーマリンクのリダイレクトは機能しません。

「いいね!」 4

つまり、以下のことをシンプルに実現する方法はない、ということでしょうか?

(1) domain1.com にアクセスすると Discourse が表示される(メインホスト名は domain1.com - 動作確認済み)
(2) domain2.com にアクセスすると domain1.com/c/example/18 に移動する(これも実現したい)
(3) domain2.com/t/topic/1 にアクセスすると domain1.com/t/topic/1 または domain2.com/t/topic/1 が表示される(現在は動作済み)

移行中で、domain2.com のルートディレクトリのみをカテゴリにリダイレクトさせたいと考えています。これを実現できるような URL 書き換え機能は存在しますか?

「いいね!」 1

ドメイン2がリダイレクト規則のみを提供している場合、はい、nginx設定でそれを記述できます。その詳細はMetaの範囲外です。

「いいね!」 2

サイトマッププラグイン を nginx の 302 リダイレクト の生データとして活用することはできないでしょうか?

「いいね!」 1

web.ssl.template.yml ファイルに以下を追加することで動作するようにしました:

if ($host = domain2.com) {
    rewrite ^/$ /c/example/18 permanent;
}
「いいね!」 2

代わりに app.ymlreplace ディレクティブに移動してください。そうしないと、今後のアップグレードで苦労することになりますよ!

「いいね!」 3

ありがとうございます!!!

「いいね!」 1