使用DNS重定向到另一个具有路径的URL

使用DNS重定向到另一个具有路径的URL,dns,redirect,Dns,Redirect,我正在尝试通过DNS将一个域重定向到另一个域 我知道在CNAME中使用它是可能的 www.proof.com IN CNAME www.proof-two.com. 我需要的是带有路径的重定向。当某人键入www.proof.com时,应将其带到www.proof-two.com/path/index.htm 我知道可以使用Web服务器设施完成,但我需要DNS重定向 这可能吗?不,你问的是不可能的。DNS是名称解析系统,对HTTP一无所知。DNS不会重定向URL的路径部分,因此这是不可能的 添加

我正在尝试通过DNS将一个域重定向到另一个域

我知道在CNAME中使用它是可能的

www.proof.com IN CNAME www.proof-two.com.
我需要的是带有路径的重定向。当某人键入
www.proof.com
时,应将其带到
www.proof-two.com/path/index.htm

我知道可以使用Web服务器设施完成,但我需要DNS重定向


这可能吗?

不,你问的是不可能的。DNS是名称解析系统,对HTTP一无所知。

DNS不会重定向URL的路径部分,因此这是不可能的

添加

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

将直接访问www.proof.com到www.proof-two.com,在那里您需要使用web服务器配置将用户引导到相应的页面。

我知道这是一个旧线程,但FWIW,以防其他人正在寻找一种方法

虽然dns不理解url的路径部分,但它将理解子域,因此,不是:

www.proof.com在CNAME中www.proof-two.com/path/index.htm

您可以使用:

www.proof.com在CNAME proof.proof-two.com


然后转到您托管proof-two.com的任何位置,并将其设置为指向www.proof-two.com/path/index.htm的proof.proof-two.com


~z~给猫剥皮的方法总是不止一种

我假设你有这样一个场景:你有一个唯一的Web服务器,托管各种网站,每个网站都应该由一个单独的域呈现:

因此,page1.html应该由www.customer1.com等提供服务

  • 在example.com dns服务器(您的Web服务器)内创建子域:

    customer1.example.com

  • 在apache虚拟服务器设置中,将子域映射到包含客户1网站的目录,如下所示:

  • 
    设置环境页面_ID“customer1”
    ServerName customer1.example.com
    ServerAlias www.customer1.com
    DocumentRoot/your/local/path/webserver/customer1
    
    请注意“ServerAlias”的值,这对于下一步很重要-

    此时,您应该能够通过浏览以下内容导航到customer1网站:

    customer1.example.com

  • 在customer1.com的DNS设置中,您必须创建CNAME记录: CNAME=www LOCATION=customer1.example.com


  • 现在,您可以使用:www.customer1.com。

    我有一个个人项目,可以帮助您解决这个问题。 这是一个开源重定向解决方案,允许您只需更改DNS设置即可重定向域。项目的链接:

    要将www.proof.com重定向到www.proof-two.com并保留URL参数,只需在proof.com上设置您的www-DNS条目:


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

    如果您使用AWS,重定向

    mail.foo.com --> mail.google.com/a/foo.com
    
    可以按如下方式进行设置:

  • 在s3中,创建一个空bucket“mail.foo.com”
  • 在属性->静态网站托管下,设置“将所有请求重定向到:mail.google.com/a/foo.com”
  • 在route53中,创建一个A记录“mail.foo.com”
  • 启用“别名”,并将别名目标设置为“mail.foo.com”bucket
  • 不是一个纯粹的DNS解决方案,但它可以工作;)


    但是请注意,重定向会跳过所有URL参数,例如:…?param1=value1¶m2=value2

    来回答最初的问题,不,您想要的东西不可能仅使用DNS(就像每个人都说过的那样)。除了前面提到的所有内容之外,另一个选项是使用URL重定向服务。这些类型的服务使您能够根据需要配置许多不同类型的URL重定向。例如:

  • 将域顶点转发到www.子域,反之亦然
  • 将域名集合转发到单个目标(用于转发域名拼写错误、旧公司名称等)
  • 将特定域名转发到深度链接页面(如OP所需)
  • 这样做的服务是。全面披露:我开发了EasyRedir。当然还有其他选择,所以我鼓励你四处看看

    编辑 似乎是我的提供商(OVH)在其基础设施中允许这种重定向

    见:

    为了存档,我保留下面的答案,但它没有为其他DNS提供商提供任何有意义的信息

    原始答案 我是用TXT记录的

    要将
    foo.bar.com
    重定向到
    foo2.bar.com/path
    ,只需在
    bar.com
    DNS区域的TXT“1 | foo2.bar.com/path”中添加
    foo即可


    它还保留url路径和参数。因此,如果您尝试访问
    foo.bar.com/hello?foo=bar
    ,您将被重定向到
    foo2.bar.com/path/hello?foo=bar
    ,当然可以重定向,方法如下:

    创建新的标准主分区 将其命名为要重定向到的虚拟URL 确保此虚拟名称不同于任何AD DNS名称 创建包含以下条目的记录:

    空白地址A地址ip-addr-2

    www.ip-addr-2


    本质上,我们这里的是重定向。有效的URL将基于现有DNS主DNS区域进行解析。虚拟URL将重定向到ip-addr-2。重要的是,此条目的名称为空,因此它将下降到记录中的下一个条目,并重定向到ip-addr-2

    每个人都已经声明了这一点,我只想为您提供另一个可以帮助您的服务选项。是一项免费服务,可以将您的域(带有通配符)重定向到任何目标url


    我还想透露一点:我是这项服务的开发人员,还有其他选择。

    我解决这个问题的方法非常简单直接。您只需要在域内运行一个IIS服务器