web-dev-qa-db-ja.com

パス情報を保持したままDNS設定を介してドメインを別のドメインにリダイレクトする方法はありますか?

たとえば、私のドメインはexample.comであり、誰かがexample.com/sample/page.htmにナビゲートするとき、test.com/sample/page.htmにリダイレクトするようにします。

これはおそらく.htaccessファイルまたは404ページを使用して簡単に実行できることを知っています。ただし、DNSプロバイダーにファイルをホストさせる必要のないソリューションを探しています。

DNS設定のみでこれを行いたい、例えば:

  • CNAMEレコード
  • 記録
  • 301転送
  • (私が欠落している他のDNS設定)

これを行う方法はありますか?

26
Senseful

Example.com/test.comをdns(必要に応じてCNAME)経由で同じWebサーバー(IP)に解決することができますが、これは機能します。

これをパスごとに行うよりも、そうではない場合。 DNSは、URLなどを認識しません。 DNSは、単にURLのホスト部分(example.com)をIPアドレスに変換しています。 Webサーバーは、URLが何を(またはどこで)解決するかを把握する責任があります。これはWebサーバー(http)レベルで行う必要があると思います。

12
Thomas

既に述べたように、これはDNSだけでは行えません。ただし、example.comのDNSがtest.comと同じサーバーを参照している場合、Apacheを構成して目的の処理を実行するのは非常に簡単です。以下を追加してください:

<VirtualHost *:80>
  ServerName example.com
  Redirect permanent / http://test.com/
</VirtualHost>

これにより、example.comへの着信リンクがtest.comのリンクに書き換えられ、パスが維持されます。

さらに、DNSプロバイダーは、test.comで既に実行されているWebサーバーにのみ依存するため、ファイルをホストする必要はありません。

8
Kris

DNSだけでこれを行うことはできません。 301リダイレクトはDNSのものではありません。彼らはウェブサーバーのものです。

できることは、example.comのDNSエントリをtest.comと同じサーバーに向け、test.comのエイリアスドメインとしてexample.comを設定することです。

3
intlect

以下は、すべてのリクエストをwww.mydomain.comからmydomain.comにリダイレクトするために使用する正確な.htaccessルールです(短いのは正規のURLであるため)。

RewriteCond %{HTTP_Host} ^www\.mydomain\.com$ [NC]
RewriteRule ^(.*)$ http://mydomain.com/$1 [R=301,L]

foo.comからfoobar.comにリダイレクトするように変更するのは簡単です。リクエストを保持しながら、クライアントは適切なドメインへの301リダイレクトを取得します。

ただし、DNSサーバーはFQDNをIPアドレスに解決するだけだと他の人が言っているように、これをDNSで「ただ」行うことはできません。

3
Tim Post