web-dev-qa-db-ja.com

ルートとすべてのサブドメインを同等の別のドメインにリダイレクトします(DNSのみ)

まず、ええ、私は知っています、この質問はおそらく重複していますが、私は今数時間検索しました、そして私は関連する答えを見つけることができません....それで私は尋ねてみます。

たとえば、domain-a.comとdomain-b.comを取得しました。 domain-aはdomain-b.comの単なるエイリアスであり、すべて(ルートおよびサブドメイン)がそれにリダイレクトする必要があります。したがって、次のリダイレクトが必要です。

http://domain-a.com => http://domain-b.com
http://aze.domain-a.com => http://aze.domain-b.com
http://www.domain-a.com => http://www.domain-b.com

domain-b.comを表示するブラウザも必要なので、ドメイン名にアクセスするときにdomain-a.comがどこにも表示されないようにする必要があります。

はい、これまでのところ、nginxまたはApacheを使用したAレコードとリダイレクトを使用すると非常に簡単です。ただし、DNS設定のみを使用して(OVHパネルを介して)これらすべてを実行したいので、自分のサーバーでdomain-b.comを処理する必要があります。

私が試したこと:

  • domain-a.com* IN CNAME domain-b.com.でこのようなCNAMEレコードを使用しますが、aze.domain-a.comに移動すると、URLは変更されず、ルートドメインは処理されません。
  • 301リダイレクトを使用していますが、すべてのサブドメインを構成する必要があり、どのサブドメインが事前に使用されるかわかりません。

DNAME record は私のニーズに適しているようですが、OVHでセットアップすることはできません。したがって、これが使用する適切なレコードである場合は、ドメインを別のレジストラに移管する必要があるため、その前に確認することをお勧めします。

別の制約があります。サーバーが複数のドメイン名を処理するため、domain-b.comに相当するものにリダイレクトするすべてのリクエストをキャッチできず、構成のみを行いますdomain-a.com

それで、それは可能ですか?

ご協力ありがとうございました

1

Webリクエストのリダイレクトを行う唯一の方法は、Webサーバーを使用することです。ユーザーのシステムに組み込まれているようなDNSリゾルバーがアドレスを要求すると、アドレスを取得します。 CNAMEは、アドレスを取得する別の場所を指示するだけですが、アドレス、ピリオドが必要です。次に、TCP接続を開始する手段として取得したアドレスを使用して、要求したドメインのWebサーバーへの要求を開始します。ブラウザーとDNSの間に接続はありません。したがって、純粋なDNSシナリオでは、DNAME(より大規模なCNAME)を使用しても、要求していることは不可能です。

私はnginxの構成に精通していませんが、Apacheでは、domain-bにサービスを提供する仮想ホストを作成できます。最上位の仮想ホストは、サイトにアクセスする他の方法の「キャッチオール」として機能します。いくつかの書き換えルールを使用して、これらすべてのキャッチオールをドメインbにリダイレクトできます。したがって、aze.domain-x.comやaze.domain-y.comなどをキャプチャし、ホスト部分を取得してaze.domain-b.comにリダイレクトできます。正規表現などを使用する必要がありますが、それは正しい方法です。 Apache 2.4 mod_rewriteを使用したリダイレクトと再マッピング を参照してください。おそらく異なる方法で実行されますが、nginxは同じ機能を持っていると確信しています。

2
theglossy1