web-dev-qa-db-ja.com

DNSを使用して非wwwドメインを他のドメインに転送する

純粋なDNSレコードを使用して、firstdomain.comwww.seconddomain.comまたはseconddomain.comに転送できますか?

www.firstdomain.comseconddomain.comに転送する方法を知っています(CNAMEを使用)。

私がやろうとしているのは、サイトをあるドメインから別の(新しい)ドメインに移動することであり、古いドメイン名を使用するすべてのリンクを壊すことではありません。

GitHub Pagesでホストされているため、301リダイレクトを実行できず、Webサーバーにアクセスできません。

2
Zen Savona

私は最終的にApache configリダイレクトでこれを解決しました(純粋なDNSでそれをしたかったのですが、これは不可能なようです...)

<VirtualHost *:80>
DocumentRoot /www/html/firstdomain.com
ServerName firstdomain.com
RedirectMatch 301 ^(.*)$ http://seconddomain.com$1
ErrorLog logs/firstdomain.com-error_log
TransferLog logs/Host.example.com-access_log
</VirtualHost>
1
Zen Savona

いいえ、DNSのみを使用してこれを達成することはできません。 DNSにはリダイレクトの概念がなく、さまざまな理由があります。おそらく最も重要なのは、リダイレクトは本質的にHTTPプロトコルの一部であり、必ずしもDNSレコードに関連しているわけではありません。

IPに直接接続するリダイレクトを発行することもできますし、逆に、TXTレコードまたはターゲットサーバーがssh接続のみを受け入れるAレコードに対しても、リダイレクトの概念がまったく意味をなさない可能性があります。 (またはHTTP(s)ではなく他のプロトコル)。

リダイレクトを実現するには、以下を行う必要があります

  1. ホスト名をサーバーに向ける
  2. サーバーはHTTP接続を受け入れるように構成する必要があります
  3. また、ソースホスト名のHTTP接続を理解するようにサーバーを構成する必要があります
  4. クライアントをHTTP経由でターゲットホスト名にリダイレクトします

CNAMEまたはAレコードはステップ1のみをカバーしますが、他のレコードをカバーするには、HTTPリダイレクトを処理するサーバーも必要です(説明されているように、これはHTTPプロトコルの一部であり、現在DNSプロトコルでカバーされていないため)

可能な解決策がいくつかあります。

  1. 古いドメインを、リダイレクトを処理するカスタムサーバー/サイトに向けます。 Herokuのシンプルなアプリなどを使用すると、無料で簡単に達成できます。
  2. 何らかの種類のリダイレクトサービスを提供するDNSプロバイダーを使用します。
0
Simone Carletti

単純なCNAME DNSエントリの何が問題になっていますか?

CNAME redirect

0
David K.