たとえば、私のドメインはexample.com
であり、誰かがexample.com/sample/page.htm
にナビゲートするとき、test.com/sample/page.htm
にリダイレクトするようにします。
これはおそらく.htaccess
ファイルまたは404ページを使用して簡単に実行できることを知っています。ただし、DNSプロバイダーにファイルをホストさせる必要のないソリューションを探しています。
DNS設定のみでこれを行いたい、例えば:
これを行う方法はありますか?
Example.com/test.comをdns(必要に応じてCNAME)経由で同じWebサーバー(IP)に解決することができますが、これは機能します。
これをパスごとに行うよりも、そうではない場合。 DNSは、URLなどを認識しません。 DNSは、単にURLのホスト部分(example.com)をIPアドレスに変換しています。 Webサーバーは、URLが何を(またはどこで)解決するかを把握する責任があります。これはWebサーバー(http)レベルで行う必要があると思います。
既に述べたように、これは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サーバーにのみ依存するため、ファイルをホストする必要はありません。
DNSだけでこれを行うことはできません。 301リダイレクトはDNSのものではありません。彼らはウェブサーバーのものです。
できることは、example.comのDNSエントリをtest.comと同じサーバーに向け、test.comのエイリアスドメインとしてexample.comを設定することです。
以下は、すべてのリクエストを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で「ただ」行うことはできません。