異なるホストでホストされている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でのみこれを実現するにはどうすればよいですか?アドバイスありがとうございます。
Prembo。
そのため、リダイレクト(アプリケーションレベル、つまりApache/Nginx/whereverで発生する)自体ではなく、DNS解決について考えています。 DomainAがホストされているホストは、DNS要求をDomainBのIPに解決する必要があるため、説明に基づいてヒットするか、ヒットするべきではありません。あなたのリクエストに何か欠けているのでない限り?
Shaneが指摘したように、DNSはHTTPリダイレクションに対応していません-これはアプリケーション/ウェブサーバーの義務です。 DomainAとDomainBをDNS上の同じIPに解決でき、すべてが機能します。しかし、これをURLごとまたはパスごとの方法で行う場合、これは不可能です。DNSはそれができません。これは単純なDNS-> IPサービスであり、実際のURLで発生しているのはWebサーバーのタスクです。
以下のコメントの後、私がやろうとしていることは、DomainAのすべてのDNSレコードをDomainBが指しているのと同じIPに参照することです。このようにすると、HTTPリクエストがhostBにヒットし、次のようになります。
これにより、DomainBに送信されるものはすべて、同じサーバーまたは別の場所でホストできるDomainAに書き換えられます。 2番目のオプションはおそらくオーバーヘッドであり、Apacheで名前ベースの仮想ホストを作成できる/許可されている場合は不要であることを理解しています。
<VirtualHost *:80>
ServerName DomainB
Redirect permanent / http://DomainA/
</VirtualHost>
私は1で行きます-DomainAのすべてのDNSレコードがDomainBが指しているのと同じIPを指すようにし、Apacheで特定の名前ベースの仮想ホストを作成します。
他の人が述べたように、DNSだけでHTTPリダイレクションを実行することはできません。 DNSとHTTPは連携して、ユーザーをあるWebページから別のWebページにリダイレクトします。
DNSを単独で使用して、ドメインAにドメインBと同じコンテンツを表示させることができますが、WebブラウザーはURLにドメインAを表示します。これはSEOの観点からはかなり悪いので、これには非常に注意する必要があります。あなたは「重複したコンテンツ」でトラブルに巻き込まれるでしょう、そして検索エンジンはそれを罰します。
これを正しく行う(UXおよびSEOの観点から)方法は、ドメインAからドメインBへのHTTPリダイレクトを実行することです。
技術的に可能であれば、Webサーバー(Apache、Nginx、IISなど)を手動で構成して、この作業を行うことができます。ウェブ上でそれを助けるための良いリソースがたくさんあります。
インフラストラクチャを制御できない、または制御したくない場合は、URLリダイレクトサービスを使用してこのジョブを実行できます。私は EasyRedir という名前の創設者ですが、他にも確かにあります。
ドメイン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]
もちろん、次のトリックでリダイレクトすることは可能です:
空白....................... A ......................... ... ip-addr-2
www ......................... A ....................... ..... ip-addr-2
ここにあるのは、本質的にリダイレクトです。有効なURLは、既存のDNSプライマリDNSゾーンに基づいて解決されます。架空のURLはip-addr-2にリダイレクトされます。重要なのは、このエントリの名前が空白であるため、レコードの次のエントリに分類され、ip-addr-2にリダイレクトされることです。