我正在尝试通过DNS将域重定向到另一个域.
我知道使用IN CNAME它是可行的.
www.proof.com IN CNAME www.proof-two.com.
Run Code Online (Sandbox Code Playgroud)
我需要的是一个路径重定向.当有人打字时www.proof.com
,应该带他们去www.proof-two.com/path/index.htm
我知道可以使用Web Server工具完成,但我需要DNS重定向.
这可能吗?
小智 82
如果你使用AWS,重定向就像
mail.foo.com --> mail.google.com/a/foo.com
Run Code Online (Sandbox Code Playgroud)
可以设置如下:
不是一个纯粹的DNS解决方案,但它的工作原理;)
但要注意,重定向会跳过所有URL参数,例如:...?param1 = value1¶m2 = value2
小智 29
我意识到这是一个老线程,但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.
〜总有不止一种方法给猫皮肤
Udl*_*ati 14
我有一个个人项目,可以帮助您解决此问题。这是一个开源重定向解决方案,可让您仅更改DNS设置即可重定向域。项目链接:https : //redirect.center/。
要将www.proof.com重定向到www.proof-two.com并保留URL参数,只需在proof.com上设置www DNS条目:
C名称中的www.proof.com www.proof-two.com.opts-uri.redirect.center。
小智 9
使用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.
似乎是我的提供商(OVH)在其基础架构中允许这种重定向.
请参阅:https://www.ovh.com/fr/g1339.redirection-nom-de-domaine
我为了存档而保留下面的答案,但它没有提供任何有意义的信息.
我使用TXT记录做到了这一点.
要重定向foo.bar.com
到foo2.bar.com/path
,只需添加foo IN TXT "1|foo2.bar.com/path"
在您的bar.com
DNS区域.
它还保留url路径和参数.因此,如果您尝试访问foo.bar.com/hello?foo=bar
,您将被重定向到foo2.bar.com/path/hello?foo=bar
.
相关工作总结如下:
问题:
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 时: //a.com/p1/p2.html可能会被转换为http://152.132.121.11/p1/p2.html 如果你的 DNS 配置错误,那么你会得到 152.132.121.11 (而不是http://152.132.11) 121.11/p1/p2.html),所以你会得到一些 400 错误(400、403 等)
重定向- 这是http://a.com/p1/p2.html可以转换为http://b.com/p1/p2.html
所有的方法,如 GET、POST 都可以工作,如果有 headers 和 body,但是涉及到一个 Web 服务器,它可能是故障点,所以可扩展性和可用性将是关键
如果您在AWS上,则可以通过自定义域在内部使用云前端进行 Route 53 -> API 网关
可以使用 Amazon Certification Manager、AWS Gateway 自定义域和 Route53,请注意 ACM 上的 us-east-1 限制
希望对某人有帮助
DNS不会重定向URL的路径部分,因此无法实现.
添加
www.proof.com IN CNAME www.proof-two.com
Run Code Online (Sandbox Code Playgroud)
将直接访问www.proof.com并访问www.proof-two.com,您需要使用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。
小智 5
我对这个问题的解决方案非常简单直接。您所需要的只是在域内运行的 IIS 服务器。
在 DNS 中设置 CNAME 以指向 IIS 服务器,使用 IIS 中的主机名解析单个 IIS 服务器上的多个站点。我使用同一台 IIS 服务器将一些子域外包给外部站点。
然后在 IIS 设置中设置重定向,使该站点转到您的场外站点/路径,在我的例子中,我希望 Catalog.ourdomain.com 转到我们的托管目录。从这里开始,所有的调整都是在 IIS 中完成的。请务必启用匿名身份验证,以免流量被阻止。
虽然几乎每个人都已经说过 - 仅使用 DNS 是不可能的。作为一种解决方法,我建议尝试 NGINX ( http://nginx.org/en/docs/http/request_processing.html )。
TL;DR - 在 NGINX 中,您可以创建多个虚拟服务器,它们可以根据服务器名称(“主机”标头)重定向您的请求。
前任。http://my-x.com重定向到 Twitter,http://my-fb.com重定向到 Facebook,而两者共享一台物理服务器。
server {
listen 80;
server_name my-x.com;
return 301 https://twitter.com/my-twitter-handle
}
server {
listen 80;
server_name my-fb.com;
return 301 https://facebook.com/my-fb-hanlde
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
323975 次 |
最近记录: |