DNSを使用してパスを持つ別のURLにリダイレクトする[終了]


120

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

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

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

私が必要なのは、パスを使用したリダイレクトです。誰かがタイプするときwww.proof.com、それはそれらをする必要がありますwww.proof-two.com/path/index.htm

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

これは可能ですか?


グーグルドメインを使用している場合は、左側のメニュー->ウェブサイトの「ドメイン転送」を使用できます。
John_J、

回答:


136

いいえ、質問することはできません。DNSは名前解決システムであり、HTTPについては何も知りません。


93

AWSを使用する場合、次のようなリダイレクト

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

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

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

純粋なDNSソリューションではありませんが、機能します;)

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


3
これは、AWSを使用しているすべての人にとって、非常に役立つ非常に役立つ回答です。ありがとうございました!甘い回避策
ケン

6
注:バケットは、リダイレクトされるホスト名と一致するように名前を付ける必要があります。参照してくださいserverfault.com/a/584714/105720
ジョーダン・フェルドスタイン

1
これはディレクトリへのリダイレクトとして機能しますが、特定のページへのリダイレクトとしては機能しません。すべてのリクエストを「www.example.com/foo/bar/baz.html」にリダイレクトすると、AWSはURLに「/」を「追加」して「www.example.com/foo/bar/baz」に変換します.html / "を返し、404エラーを返します。
Earl Ruby

34

これは古いスレッドですが、他の誰かがこれを行う方法を探している場合は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をホストする場所に移動し、それをproof.proof-two.comがwww.proof-two.com/path/index.htmを指すように設定します。

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


2
これは、proof.proof-two.comがwww.proof-two.com/path/index.htmをポイントするのではなく、役に立たない構造のように聞こえます。www.roof.comをそこにポイントするだけで、追加のDNSレコード。
ミシェル

12
@Michiel Webサーバーに簡単にアクセスできる場合は、役に立たない構成のように聞こえproof-two.comます。大企業(および官僚機構)は、すべてのことをそれよりもはるかに複雑にすることがあります。
cregox 14

1
「次にproof-two.comをホストする場所に移動し、それをproof.proof-two.comがwww.proof-two.com/path/index.htmを指すように設定します」これを行う方法は?
user2060451

17

この問題の解決に役立つ個人的なプロジェクトがあります。これは、DNS設定を変更するだけでドメインをリダイレクトできるオープンソースのリダイレクトソリューションです。プロジェクトのリンク:https : //redirect.center/

www.proof.comをwww.proof-two.comにリダイレクトし、URLパラメータを維持するには、www.proof.comにwww DNSエントリを設定するだけです。

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


問題は、ドメインだけでなく、フルパスURLにリダイレクトすることでした。
Tony Chiboucas、2015年

2
それはまだ完全な道ではありません
トニー・チブカス'10 / 11/15

2
パスは、サービスの「.opts-slash」を通じてサポートできます。関数。jobs.my-domain.commy-domain.com/jobsにリダイレクトし ますDNSゾーンを次のように構成します。ホストレコード:ジョブタイプ:CNAME宛先:www.my-domain.com.opts-slash.jobs.redirect.center
デビッドターナー

1
レジストラがリダイレクトを提供しない場合、これは本当にクールでシンプルです。
Luca Steeb 2017年

1
これは完璧です!このようなものが存在すると想定しましたが、見つかりませんでした(SEOに取り組む必要があると思います)。
Matt Dodge、

11

本当に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サイトにリダイレクトする場合は、このオプションを追加できます。

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

これで、運命のページにスラッシュを使った正規モードでCNAMEを作成できます。


私はこれを試しましたが、うまくいきません。ユーザーをredirect.centerのサイトにリダイレクトするだけです。
Renan

CNAMEレジストリをコピーできますか?再サイト化されたサイトもコピーできますか?
Alvaro Aguilar

1
@RenanソースドメインがDNSに存在し、redirect.centerサーバーから検索できることを確認します。また、ブラウザでtarget-domain.com.redirect.centerに移動しても機能しません。:説明を参照してくださいgithub.com/udleinati/redirect.center/issues/...

11

編集する

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

参照:https : //docs.ovh.com/gb/en/domains/redirect-domain-name/

アーカイブのために以下の回答を保持していますが、意味のある情報は提供されていません。

元の答え

TXTレコードを使用してそれを行いました。

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

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


6
これをもう少し具体化できますか?TXTレコードの使用方法に関するリファレンスはありますか?
ジョサイア

これはurlパラメータも保持しますか?
andreas

1
調査後、OVHは私にそれを行っているようです。参照:ovh.com/fr/g1339.redirection-nom-de-domaine(fr)。回答を更新します。
ガブリエル

10

元の質問に答えるには、いいえ、あなたが望むものは(誰もが述べたように)DNSだけを使用しては不可能です。すでに述べたすべてに加えて、別のオプションはURLリダイレクトサービスを使用することです。これらのタイプのサービスを使用すると、ニーズに応じてさまざまなタイプのURLリダイレクトを構成できます。例えば:

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

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


5

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

追加

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

は、www.proof.comへのアクセスをwww.proof-two.comにリダイレクトします。ここでは、ユーザーを適切なページに誘導するためにWebサーバー設定を使用する必要があります。


4

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

IISのホスト名を使用してIISサーバーを指すようにDNSにCNAMEを設定し、単一のIISサーバー上の複数のサイトを解決します。同じIISサーバーを使用して、いくつかのサブドメインを外部サイトにファームアウトしています。

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


3

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

したがって、page1.htmlはwww.customer1.comなどによって提供されます。

  1. example.com DNSサーバー(Webサーバー)内にサブドメインを作成します。

    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を使用できるようになりました。


3

関連研究により、以下のすべてが終了しました:

問題:

http://a.com/p1/p2.html は 、今日はhttp://B.com/p1/p2.htmlに移動する必要があり
ますが、後で手動/自動で構成すると、同じ
http://a.com/p1 /p2.htmlhttp://C.com/p1/p2.htmlに移動する必要があり ます

答え:

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

多くのリダイレクトを実行できますが、常に出力はIPアドレスですDNSはURLのパスまたはプロトコル部分を理解せず、ドメイン部分のみを理解します。つまり、a.comのみがIPアドレスに変換されるため、httpを押すと、//a.com/p1/p2.htmlhttp://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を使用している場合、Route 53-> API Gatewayは、カスタムドメインを介して、内部的にクラウドフロントを使用して可能です

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

誰かを助けることを願っています


2

ほとんどの人が既に述べたように-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にリダイレクトしますが、どちらも単一の物理サーバーを共有します。


0

ユーザーが特定のドメインを要求していない場合は、htaccess rewrite modを使用してサブフォルダーに再書き込みできます。


-1

もちろん、次のトリックでリダイレクトすることは可能です:

新しい標準プライマリゾーンを作成しますリダイレクト先の架空のURLと同じ名前を付けますこの架空の名前がどのAD DNS名とも異なることを確認します次のエントリを持つAレコードを作成します。

空白....................... A ......................... ... ip-addr-2

www ......................... A ....................... ..... ip-addr-2

ここにあるのは、本質的にリダイレクトです。有効なURLは、既存のDNSプライマリDNSゾーンに基づいて解決されます。架空のURLはip-addr-2にリダイレクトされます。重要なのは、このエントリの名前が空白であるため、レコード内の次のエントリに分類され、ip-addr-2にリダイレクトされることです。


-4

誰もがこれをすでに述べています、そして私はあなたを助けることができるサービスに別のオプションをあなたに与えたいと思います。www.301redirect.itは、ワイルドカードを使用してドメインを任意の宛先URLにリダイレクトできる無料のサービスです。

私も開示を追加したいと思います。私はこのサービスの開発者であり、そこには他のオプションがあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.