AレコードとCNAMEレコードのみを使用してドメインAをドメインBにリダイレクトする方法


46

異なるホストでホストされている2つのドメインがあります。ドメインAをドメインBにリダイレクトする必要があります。残念ながら、ホストAから301リダイレクトを行うことはできませんが、ホストAでDNSエントリ(AレコードとCNAME)のみを変更/追加できます。

確かに、AレコードとCNAMEのみを使用してwww.DomainA.comをwww.DomainB.comにリダイレクトできますか?

現在、DNSエントリは次のとおりです。

DomainA.com.    3600    IN    SOA       ns1.HostA.net.
www             3600    IN    CNAME     www.DomainB.com.    
DomainA.com.    3600    IN    NS        ns1.HostA.net.  
DomainA.com.    3600    IN    NS        ns2.HostA.net.  
DomainA.com.    3600    IN    NS        ns3.HostA.net.

リダイレクトしたい

DomainA.com -> DomainB.com
*.DomainA.com -> *.DomainB.com

この他の投稿から提案を試みましたが、うまくいきませんでした。

AレコードとCNAMEでのみこれを達成するにはどうすればよいですか?ご助言ありがとうございます。

プレボ。


2
どのようなリダイレクトを達成しようとしていますか?DNSは、HTTPリダイレクトのように機能することはできません。ブラウザーがDNSのみでアクセスしようとしているホストを変更することはできません。
シェーンマッデン

301リダイレクトが理想的であり、それが近い将来に行うことであることを理解しています(残念ながら、ドメインAはホストAでさらに50日間停止し、ロックアウト期間のために転送できません。追加の「パッケージ」の料金を支払わない限り、HTTPリダイレクトを実行できます)。したがって、当面は、ドメインAをホストBに移動する前に、ドメインAからドメインにトラフィックをリダイレクトしようとしています。
Prembo

1
DNS はリダイレクトできません。のみ行うことができます事DNSエイリアス(1名はコピーのように、他のと同じように見える)です。それは、ある場所に到着した人を別の場所に送ることと同じことではありません。
クリスS

HTTPリダイレクトとDNS解決/委任の違いを明確にしていただきありがとうございます。今、私は分かる。
-Prembo

回答:


38

したがって、リダイレクトはそのように(アプリレベル、つまりApache / Nginx / whereeverで発生する)としてではなく、DNS解決に注目しています。DNS要求をDomainBのIPに解決するための説明に基づいて、DomainAがホストされているホストはヒットするか、またはヒットしないはずです。あなたのリクエストに何かが足りない場合を除きますか?

シェーンが指摘したように、DNSはHTTPリダイレクションに対応していません-それはアプリケーション/ウェブサーバーの義務です。DomainAとDomainBをDNS上の同じIPに解決することができ、すべてが機能します。しかし、URL /パスごとにこれを実行しようとしている場合、これは不可能です-DNSはそれができません-それは単純なDNS-> IPサービスです、実際のURLで何が起こっているのかはウェブサーバーのタスクです。

以下のコメントの後、私はDomainAのすべてのDNSレコードをDomainBが指しているのと同じIPに参照することをしたいです-この方法でhostBにヒットするHTTPリクエストを取得し、それは簡単なことです:

  1. 特定のApache名前ベースの仮想ホストの作成-独自のDocumentRootからファイルを提供します
  2. Apacheで次のような永続的なリダイレクトを作成します。

これにより、DomainBに着信するものはすべて、同じサーバーまたは別の場所でホストできるDomainAに書き換えられます。2番目のオプションはおそらくオーバーヘッドであり、Apacheで名前ベースの仮想ホストを作成できる場合は必要ありません。

<VirtualHost *:80>
  ServerName DomainB
  Redirect permanent / http://DomainA/
</VirtualHost>

私は1で行きます-DomainAのすべてのDNSレコードをDomainBが指しているのと同じIPにポイントし、Apache上で特定の名前ベースの仮想ホストを作成します。


はい、正しく理解しています-上記の私のコメントをご覧ください。それでは、どのDNSエントリがその目的を達成するのに役立つでしょうか?ホストAにはWebホスティングはなく、ドメインのみが保持されます。そして、ドメインAへのすべてのトラフィックがドメインBに解決されるようにします...お時間をいただきありがとうございます。
-Prembo

これは、ServerAlias domain Bを既存の仮想ホストに追加するのと同じdomain Aですか?
BadHorsie

9

他の人が述べたように、DNSだけでHTTPリダイレクトを実行することはできません。DNSとHTTPは連携して、ユーザーをあるWebページから別のWebページにリダイレクトします。

DNSを単独で使用して、ドメインAにドメインBと同じコンテンツを表示させることができますが、WebブラウザーではURLにドメインAが表示されます。SEOの観点からは非常に悪いので、これには非常に注意する必要があります。「重複コンテンツ」で問題が発生し、検索エンジンがそれを罰します。

この作業を行う正しい(UXおよびSEOの観点から)方法は、ドメインAからドメインBへのHTTPリダイレクトを実行することです。

技術的に可能であれば、Webサーバー(Apache、Nginx、IISなど)を手動で構成して、この作業を行うことができます。ウェブ上でそれを支援するための多くの優れたリソースがあります。

インフラストラクチャを制御できない、または制御したくない場合は、URLリダイレクトサービスを使用してこのジョブを実行できます。私はEasyRedirと呼ばれるものの創設者ですが、確かに他にもあります。


5

ドメインAはドメインBと同じIPアドレスを持つ必要があります。Aの定義でBを参照する必要はありません。WebブラウザーはリダイレクトとしてCNAMEを「追跡」せず、同じホスト名を保持し、CNAMEの独自のレコードを使用してIPアドレスに解決します。

AにアクセスしたときにブラウザにBを表示したい場合(オプションでDNSとは無関係)、HTTPホストを照合し、Webサーバーで要求をリダイレクトする必要があります。Apacheでは、mod_rewriteを使用して、仮想ホスト定義で次のようにします。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?domainB.com$
RewriteRule ^/(.*)$ http://www.domainA.com/$1 [R=301,L]

0

もちろん、次のトリックを使用してリダイレクトできます。

  1. 新しい標準プライマリゾーンを作成する
  2. リダイレクト先の仮想URLと同じ名前を付けます
  3. この架空の名前がどのAD DNS名とも異なることを確認してください
  4. 次のエントリを持つレコードを作成します。

空白....................... A ......................... ... ip-addr-2

www ......................... A ....................... ..... ip-addr-2

ここにあるのは、本質的にリダイレクトです。有効なURLは、既存のDNSプライマリDNSゾーンに基づいて解決されます。仮想URLはip-addr-2にリダイレクトされます。重要なのは、このエントリの名前が空白であるため、レコード内の次のエントリに落ちてip-addr-2にリダイレクトされることです。


-1

試したことはありませんが、これを行うことができると思います。

DomainA.com. CNAME DomainB.com.

これは、DomainAゾーンファイル内の他のレコードの代わりになります。SOAもなし。

作業に関心があるドメインでこれを試さないでください。


SOAを除外しても、これによりサブドメインの解決がリダイレクトされるとは思わない。DNAMEはこれを行うように設計されていますが、何らかの理由で誰も理解していないため、CNAMEとDNAMEは相互に排他的です。
ファルコンモモット

2
あなたは置くことができないCNAMEような裸/頂点ドメイン上のレコードをdomain.comのようなサブドメインに、しかし、あなたはできるwww.domain.com
ペトリュスセロン

これはリダイレクトせず、www.DomainA.comのみをDomainBのIPに解決します。それが唯一のサブドメイン(いない裸のdomain0の>のために働く
Wernight
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.