web-dev-qa-db-ja.com

subdomain.example.orgをユーザーに隠されたsomethingelse.comにリダイレクトしますか?

C-NAMESA-RECORDS、ネームサーバーなどなので、これについては我慢してください。

Subdomain.example.orgを別のドメインsomethingelse.comにリダイレクトしたい。私は両方のドメインを所有しており、両方のドメインが共有ホスティングで実行されています。サブドメインを作成するとき、私が最初からできることは、HTTPリダイレクト(302、yuck!)またはフレームリダイレクトを行うことだけです。
ネームサーバーCNAMEのような1つのホストにDNSレコードを設定することもできますが、自分が何をしているのかはわかります。

ネームサーバーを使用したルーティングの仕組みとshould(現在のホストでは不可能な場合でも)subdomain.example.orgを「サブドメイン」のままでユーザーに表示されるURLを使用してsomethingelse.comにリダイレクトする方法を説明してください.example.org」

8
Dennis G

ネームサーバーは何もルーティングしません。ネームサーバーは名前の要求に応答し、最終的にIPを返します。 CNAMEレコードは名前を返します。名前は、IPを取得するために検索されます。 DNSレコードで本当にできる唯一のことは、名前が設定されていることを確認して、トラフィックを受け入れ、必要な処理を実行するサーバーのIPアドレスを返すことです。

名前ベースの仮想ホスティング設定でWebサーバーを設定し、その仮想ホストのメイン名がsomethingelse.comの場合、その仮想ホストに追加の名前subdomain.example.orgを設定できます。 DNSでは、レコードを設定して、仮想ホストsomethingelse.comのIPを返します。

somethingelse.comでホストされているWebサイトは、可能な限り相対リンクを使用する必要があります。そうしないと、ユーザーは、リンクが別のドメインに切り替えられたことにすぐに気付きます。

...これが重要なポイントです。どうすればいいですか?

名前をIPに関連付けるAレコード、または必要なIPを指すAレコードを指すCNAMEレコードを作成するだけです。

DNSは何も知りません。求めているものは、HTTPサーバーで処理する必要があります。

それ以外の場合、ドメインをgoogle.comにリダイレクトして、自分のサイトのように見せることができますか?

DNSレコードは、任意のIPアドレスでポイントできます。 HTTPの場合、リクエストの一部には、アクセスしようとしているホスト名が含まれます。 Googleのウェブサーバーは、HTTPリクエストの一部であるホスト名に基づいて拒否を選択する場合があります。

Googleのサーバーを指すようにDNS名を設定することは、Google Appsの顧客であればサポートされています。特定のページにどの名前を使用するかをGoogleに通知するために最も従う手順があります。その後、Googleはそれに応じて構成を調整します。

アクセスに使用されるホスト名を含まない他のプロトコルを使用している場合、サーバーは何が何であるかを知る方法がありません。 googledns.example.org IN A 8.8.8.8のようなレコードを作成し、ping googledns.example.orgを実行することで、これを自分で簡単にテストできます。GoogleのDNSサーバーがpingに応答します。 pingコマンドに使用した名前は、ICMPエコー応答にはまったく含まれず、IPアドレスのみが含まれます。

6
Zoredache

Subdmainがあるフォルダに.htaccessファイルを(301リダイレクトで)セットアップできないのはなぜですか。

例えば:

  1. Example.org/subdomainフォルダーに.htaccessファイルを作成します。
  2. 上記のフォルダに基づいてCpanelでサブドメインを設定します
  3. その新しい.htaccessファイルを編集し、次のコードを追加します

    リダイレクト301/ http://somethingelse.com

/はサブドメインのルートディレクトリで、 http://somethingelse.com は送信先です。

私のために働く。

4
HandyMick

CNAMESを使用したDNSリダイレクトは、共有ホスト上での希望どおりには機能しません。

ここでは、subsome.example.orgにsomeelse.comを指す「CNAME」レコードと、somethingelse.comを指す「A」レコードがあるとします。 subdomain.example.comにアクセスすると、最初にDNSサーバーが照会され、正しいIPアドレスが決定されます。 DNSサーバーはCNAMEレコードを確認し、somethingelse.comのIPアドレスを再帰的に決定します。これは、デスクトップに返されます。

ブラウザはそのIPアドレスにアクセスし、subdomain.example.comを要求します。実際、somethingelse.comが存在することさえ知りません。

専用のボックスがある場合は、CNAMEを期待どおりに機能させることができますが、名前ベースの仮想ホストを使用する機能は失われます。 IPベースの仮想ホストを使用すると、特定のIPを指すすべてのドメインが同じコンテンツを提供します。

ページがsomethingelse.comから提供されているときにブラウザのアドレスバーにsubdomain.example.orgと表示するには、ホストから提供されたフレームリダイレクトを使用することを再検討することができます。

ホストがmod_proxyを提供している場合の別の可能性は、subdomain.example.comのvirtualhost構成にリバースプロキシを設定することです。

ProxyPass / http://somethingelse.com/
ProxyPassReverse / somethingelse.com/

これにより、subdomain.example.comはsomeelse.comのコンテンツを提供しますが、ソースドメインとしてsubdomain.example.comを報告します。

1
calman

唯一の完全なソリューションは、「subdomain.example.org」をリッスンするようにWebサーバーを設定し、HTTPリダイレクトを使用して「somethingelse.com」にリダイレクトすることです。

Cnameを使用して「subdomain.example.org」を「somethingelse.com」にポイントすると、Webブラウザーは「somethingelse.com」のWebサーバーと通信しますが、「subdomain.example。構成されていない可能性がある組織」。両方のURLを受け入れるようにWebサーバーを構成できる場合、cnameは正常に機能します。

1
Patrick