web-dev-qa-db-ja.com

パスを使用してDNSを使用して別のURLにリダイレクトする

DNSを介してドメインを別のドメインにリダイレクトしようとしています。

IN CNAMEを使用することは可能であることを私は知っています。

www.proof.com IN CNAME www.proof-two.com.

私が必要としているのはパスを持つリダイレクトです。誰かがwww.proof.comをタイプするとき、それはそれらをwww.proof-two.com/path/index.htmに連れて行くべきです

Webサーバー機能を使用して実行できることはわかっていますが、DNSリダイレクトが必要です。

これは可能ですか?

98

いいえ、あなたが尋ねることは不可能です。 DNSは名前解決システムであり、HTTPについては何も知りません。

118
eudoxos

aWSを使用している場合、リダイレクトは

mail.foo.com --> mail.google.com/a/foo.com

次のように設定できます。

  1. s3で、空のバケツ「mail.foo.com」を作成します。
  2. [プロパティ] - > [静的ウェブサイトホスティング]で、[すべてのリクエストをmail.google.com/a/foo.comにリダイレクトする]を設定します。
  3. route53で、Aレコード "mail.foo.com"を作成します。
  4. "alias"を有効にし、エイリアスターゲットを "mail.foo.com"バケットに設定します。

純粋なDNSソリューションではありませんが、うまくいきます。

ただし、注意してください、リダイレクトはすべてのURLパラメータをスキップします。例:...?param1 = value1&param2 = value2

78
tlossen

私はこれが古いスレッドであることを認識していますが、他の誰かがこれを実行する方法を探しているのなら、FWIW。

DnsはURLのパス部分を認識しませんが、サブドメインを認識します。

www.proof.com IN CNAME www.proof-two.com/path/index.htm

あなたが使用することができます:

www.proof.com in CNAME proof.proof-two.com

それからあなたはどこでもproof-two.comをホストし、www.proof-two.com/path/index.htmにproof.proof-two.comを指すように設定します。

〜猫の皮を剥ぐ方法は常に複数あります

27
another way

私はあなたがこの問題を解決するのを助けるかもしれない個人的なプロジェクトを持っています。これはオープンソースのリダイレクトソリューションで、DNS設定を変更するだけでドメインをリダイレクトできます。プロジェクトのリンク: https://redirect.center/

URLパラメータを保持したままwww.proof.comをwww.proof-two.comにリダイレクトするには、単にwww DNSエントリをproof.comに設定してください。

www.proof.com IN CNAME www.proof-two.com.opts-uri.redirect.center.

14
Udlei Nati

元の質問に答えるために、いいえ、あなたが望むものは(みんなが言っているように)DNSだけでは不可能です。すでに述べたことすべてに加えて、もう1つの選択肢はURLリダイレクトサービスを使用することです。これらの種類のサービスを使用すると、ニーズに応じてさまざまな種類のURLリダイレクトを設定できます。例えば:

  1. ドメインアペックスをwwwに転送します。サブドメインまたはその逆
  2. ドメイン名のコレクションを単一の宛先に転送する(ドメインのスペルミス、古い会社名などを転送するのに役立ちます)
  3. 特定のドメイン名を深くリンクされたページに転送する(OPが望むもののように)

これを行うサービスは EasyRedir です。完全開示:EasyRedirを開発しました。確かに他の選択肢もありますので、ぜひご覧ください。

10
wgrrrr

本当に redirect.center で簡単です

CNAMEを以下のように作成します。

www.proof.com IN CNAME www.proof-two.com/path/index.htm

redirect.centerを使用すると、CNAMEは標準モードのようになります。

www.proof.com IN CNAME www.proof-two.com.opts-slash.path.opts-slash.index.htm.redirect.center。

Https Webサイトにリダイレクトしたい場合は、このオプションを追加してください。

www.proof.com IN CNAME www.proof-two.com.opts-slash.path.opts-slash.index.htm.opts-https.redirect.center.

これで、運命のページに標準モードのスラッシュでCNAMEを作成できます。

9
Alvaro Aguilar

編集する

インフラストラクチャー内でそのようなリダイレクトを許可しているのは私のプロバイダー(OVH)のようです。

参照してください: https://www.ovh.com/fr/g1339.redirection-nom-de-domaine

私はアーカイブのために以下の答えを守っていますが、それは意味のある情報を提供しません。

元の答え

私はTXTレコードを使ってそれをしました。

foo.bar.comfoo2.bar.com/pathにリダイレクトするには、foo IN TXT "1|foo2.bar.com/path" DNSゾーンにbar.comを追加するだけです。

URLパスとパラメータも保持されます。 foo.bar.com/hello?foo=barにアクセスしようとすると、foo2.bar.com/path/hello?foo=barにリダイレクトされます。

8
Gabriel

DNSはURLのパス部分をリダイレクトしないので、それは不可能です。

追加中

www.proof.com IN CNAME www.proof-two.com

www.proof.comからwww.proof-two.comに直接アクセスします。ここでは、Webサーバーの設定を使用してユーザーを適切なページに誘導する必要があります。

5
Karl Barker

@contacto連絡先と@adlawson

私は今、同じような挑戦に直面しているので、ここで月のために撃つつもりです。私は、技術レベルでDNSサーバーに実装されている解決策を見つけました。

完全な開示:あなたの走行距離のために私のDNSを管理するために www.dnsmadeeasy.com を使用します、GoDaddyまたは他のバニラ登録機関によって変わるかもしれません。

私のDNSソリューション:

HTTPリダイレクションレコードを使う - 私はURLを指す http://techshiftacademy.com Pythonクラスへの基本的な登録があるちょっとしたリンクへ。

3
azatar

この問題に対する私の解決策は非常に単純で直接的でした。必要なのは、ドメイン内で実行されているIISサーバーだけです。

IIS内の複数のサイトを解決するためにIIS内のホスト名を使用して、IISサーバーを指すようにDNSのCNAMEを設定します。私は、同じIISサーバーを使用して、いくつかのサブドメインを外部サイトに集約しています。

それからIISセットアップのリダイレクトであなたのオフサイトサイト/パスに行くためにそのサイトのために、私の場合それは私がcatalog.ourdomain.comに行きたかった私達のホストされたカタログでした。ここからすべての調整はIISで行われます。トラフィックがブロックされないように、匿名認証を必ず有効にしてください。

3
Don Schaefer

関連する研究は以下のすべてを締めくくった:

問題:

http://a.com/p1/p2.html に移動する必要があります http://B.com/p1/p2.html
今日、ただし後で手動または自動で設定した場合も同じ
http://a.com/p1/p2.html に移動する必要があります http://C.com/p1/p2.html

答え:

DNS - 名前をIPアドレスに変換します

それは多くのリダイレクトを行うことができますが、常に出力されますIPアドレスDNSはURLのパスやプロトコル部分を理解していない、ドメイン部分のみを理解し、つまり、あなたがヒットしたとき - http://a.com/p1/p2.html に変換される場合があります http://152.132.121.11/p1/p2.html DNSで間違った設定をした場合、 152.132.121.11( http://152.132.121.11/p1/p2.html ではありません)になるので、400sエラー(400、403など)になります。

リダイレクト - これは http://a.com/p1/p2.html に変換できます http://b.com/p1/p2.html

GET、POSTなどのすべてのメソッドは機能しますが、ヘッダーと本体があれば使用できますが、Webサーバーが関係している場合は失敗の原因となるため、スケーラビリティと可用性が重要になります。

オンAWSの場合、内部的にクラウドフロントを使用して、ルート53 - > API Gatewayをカスタムドメイン経由で使用できます。

Amazon Certification Manager、AWS Gatewayカスタムドメイン、Route 53で可能です。ACMのus-east-1制限に注意してください。

誰かに役立つことを願っています

私はあなたがこのシナリオを持っていると思います:あなたは様々なウェブサイトをホストしているユニークなウェブサーバーを持っています、それぞれは別々のドメインによって提示されることになっています:

そのため、page1.htmlはwww.customer1.comのように提供されます。

  1. example.comdnsサーバー(あなたのウェブサーバー)の中にサブドメインを作成します。

    customer1.example.com

  2. 次のように、Apache仮想サーバーの設定で、サブドメインを顧客#1のWebサイトを含むディレクトリにマッピングします。

<VirtualHost *:80> SetEnv PAGE_ID "customer1" ServerName customer1.example.com ServerAlias www.customer1.com DocumentRoot /your/local/path/webserver/customer1 </VirtualHost> "ServerAlias"の値に注意してください、それは次のステップにとって重要です -

この時点で、以下を参照してcustomer1 Webサイトにナビゲートできるはずです。

customer1.example.com

  1. Customer1.comのDNS設定では、CNAMEレコードを作成する必要があります。

    CNAME = www LOCATION = customer1.example.com

これで、www.customer1.comを使用できます。

2
christian

ほとんどの人がすでに述べたように - 一方、それだけでDNSを使用することは不可能です。回避策として、NGINX( http://nginx.org/en/docs/http/request_processing.html )を試すことをお勧めします。

TL; DR - NGINXでは、サーバー名に基づいてリクエストをリダイレクトできる複数の仮想サーバーを作成できます。

http://first.my-server.com Aにリダイレクトし、 http://second.my-server.com Bにリダイレクトします。単一の物理サーバー.

2
nyxz

Htaccess rewrite modを使用できます。ユーザーが特定のドメインを要求しているのであればサブフォルダーに書き換えてください。

0
gnvsale