Answers:
如果您使用AWS,则重定向如下
mail.foo.com --> mail.google.com/a/foo.com
可以如下设置:
不是纯粹的DNS解决方案,但它可以工作;)
但是请注意,重定向会跳过所有URL参数,例如:...?param1 = value1&param2 = value2
我意识到这是一个旧线程,但是FWIW,以防其他人正在寻找一种方法来执行此操作。
尽管dns不了解url的路径部分,但它可以了解子域,因此可以代替:
CNAME中的www.proof.com www.proof-two.com/path/index.htm
您可以使用:
www.proof.com IN CNAMEproof.proof-two.com
然后转到您托管proof-two.com的任何地方,并将其设置为将proof.proof-two.com指向www.proof-two.com/path/index.htm。
〜总是有不止一种方式给猫皮
proof-two.com
Web服务器,这听起来像是无用的构造。有时,大公司(和官僚机构)会使事情变得复杂得多。
我有一个个人项目,可以帮助您解决此问题。这是一个开源重定向解决方案,可让您仅更改DNS设置即可重定向域。项目链接:https : //redirect.center/。
要将www.proof.com重定向到www.proof-two.com并保留URL参数,只需在proof.com上设置www DNS条目:
CNAME中的www.proof.com www.proof-two.com.opts-uri.redirect.center。
使用redirect.center确实很容易
如果要创建一个CNAME为:
CNAME中的www.proof.com www.proof-two.com/path/index.htm
使用redirect.center,您的CNAME看起来像是规范模式:
CNAME中的www.proof.com www.proof-two.com.opts-slash.path.opts-slash.index.htm.redirect.center。
现在,如果您想重定向到https网站,则可以添加以下选项:
CNAME中的www.proof.com www.proof-two.com.opts-slash.path.opts-slash.index.htm.opts-https.redirect.center。
现在,您可以在目的地页面中以标准模式创建带有斜杠的CNAME。
似乎是我的提供程序(OVH)允许在其基础结构中进行这种重定向。
参见:https : //docs.ovh.com/gb/en/domains/redirect-domain-name/
为了存档起见,我保留下面的答案,但是它没有提供任何有意义的信息。
我是用TXT记录来做的。
要重定向foo.bar.com
到foo2.bar.com/path
,只需添加foo IN TXT "1|foo2.bar.com/path"
您的bar.com
DNS区域。
它还保留网址路径和参数。因此,如果您尝试访问foo.bar.com/hello?foo=bar
,您将被重定向到foo2.bar.com/path/hello?foo=bar
。
我将假设您遇到这种情况:您有一个托管各种网站的唯一Web服务器,每个网站都应该由一个单独的域呈现:
因此,page1.html应该由www.customer1.com提供,依此类推。
在example.com dns服务器(您的网络服务器)内创建一个子域:
customer1.example.com
在apache虚拟服务器设置中,将子域映射到包含客户#1网站的目录,如下所示:
<VirtualHost *:80> SetEnv PAGE_ID "customer1" ServerName customer1.example.com ServerAlias www.customer1.com DocumentRoot /your/local/path/webserver/customer1 </VirtualHost>
请注意“ ServerAlias”的值,这对于下一步很重要-
在这一点上,您应该能够通过浏览到以下网址导航到customer1网站:
customer1.example.com
CNAME = www LOCATION = customer1.example.com
现在,您可以使用:www.customer1.com。
相关工作总结如下:
问题:
今天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的路径或协议部分,仅理解域部分,即a.com仅转换为IP地址,因此当您单击http时: 如果您在DNS中配置错误,//a.com/p1/p2.html可能会转换为http://152.132.121.11/p1/p2.html,那么您将获得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上,则可以通过自定义域在内部使用Cloud Front进行Route 53-> API Gateway
可以使用Amazon Certification Manager,AWS Gateway自定义域和Route53,请注意ACM的us-east-1限制
希望对某人有帮助
尽管几乎每个人都说过-仅使用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,它们都共享一个物理服务器。
当然,可以使用以下技巧进行重定向:
创建一个新的标准主区域,使其与您要重定向到的虚拟URL相同。确保此虚拟名称与任何AD DNS名称不同。使用以下条目创建A记录:
空白....................... A ..................................... ... ip-addr-2
www .......................................... A ...................... ..... ip-addr-2
本质上,这里我们是重定向。一个有效的URL将根据现有的DNS主DNS区域进行解析。虚构的URL将被重定向到ip-addr-2。重要的是该条目的名称为空,因此它将落入记录中的下一个条目并重定向到ip-addr-2
每个人都已经说过这一点,我只想给您提供另一种可以帮助您的服务的选择。www.301redirect.it是一项免费服务,可以将您的域(使用通配符)重定向到任何目标URL。
我还想补充一点:我是这项服务的开发人员,还有其他选择。