web-dev-qa-db-ja.com

DNSはdomain.comをwww.domain.comにリダイレクトします

質問に対してウェブ検索を実行しましたが、結果に完全に失望しました。この場合、domain.comへのすべてのリクエストをサブドメインwww.domain.comにリダイレクトします。

だから私が持っているもの:

  1. www.domain.com -メインWebサイトドメイン、すべてのクライアントリクエストはここにリダイレクトする必要があります
  2. domain.com -wwwプレフィックスを使用していない人のための別のWebサイトエントリポイント。すべてのリクエストはwww.domain.comにリダイレクトする必要があります
  3. mydomain.com -代替ウェブサイトエイリアス、すべてのリクエストはwww.domain.comにリダイレクトされる必要があります
  4. www.mydomain.com -wwwプレフィックスを使用している場合は、すべてのリクエストをwww.domain.comにリダイレクトする必要があります

これは.htaccessとPHPを使用して可能であることを理解しています。しかし、DNSのみを使用してこれを行う方法を理解したいと思います。また、DNSクエリの結果はHTTPレイヤーで発生することを変更しないため、最初に入力したドメイン名は常にホストのWebサーバーに送信されるものになることを理解しています。したがって、domain.comをwww.domain.comに書き換えるには、まだApache mod_rewriteが必要です。しかし、私はDNS(CNAMEおよびAレコード)を使用して作業の主要部分を行いたいです。

それでは、主な質問は、上記の各ドメインに含まれるCNAMEとAレコードの内容です。

55
Maksim

Www.domain.comをAレコードにし、他のすべてのドメイン名をwww.domain.comのCNAMEにすることができます。ただし、これは、www.domain.comのIPアドレスが変更された場合に、エイリアスである他のDNSエンティティを変更する必要がないことを「解決」するだけです。

したがって、DNSレベルでは、リダイレクトを強制する方法はありません。また、DNSはHTTPのみに使用されるため、正当な理由があります。たとえば、domain.comに対するすべてのリクエストがwww.domain.comにリダイレクトされる場合、メールアドレスは[email protected]に変更されます。

そのため、HTTPリダイレクションにはHTTPソリューションを使用する必要があります。これはWebサーバーレベル(mod_rewrite、コード内、javascript(ugh)など)で実行できますが、Webサーバーの前にプロキシを配置してこれを処理することもできます。

52
Michaël Hompus