如何将一个域重定向到本地另一个域?


26

我的/ etc / hosts文件如下所示:

127.0.0.1       localhost
10.20.7.67      testsitealpha.dev
othersite.dev   testsitebeta.dev

前两个工作。最后一个没有。为什么不?我该如何运作?我这样做的原因是因为我有一个测试服务器(othersite.com),它位于本地网络上,但其IP可能会有所不同。例如一天的10.20.7.98,另一天的10.20.7.35,依此类推。

那么,如何使我的系统始终将testsitebeta.dev解析为与othersite.dev相同的IP?

Answers:


11

正如克里斯已经写的,问题在于“ othersite.dev”不是一个数字。您需要的格式是IP hostname1 [hostname2] [hostname3]

然而,更深层的问题是对主机文件以及可能与DNS有关的误解。基本上,主机文件不是为重定向而设计的。当CPU周期昂贵时,这是一个简单的解决方案。它缺乏诸如无需手动编辑文件即可适应迅速变化的IP地址的功能。通过从主机文件切换到基于网络的解析器系统解决了这些问题。

因此,对您的问题的真正答案不是使用/etc/hosts,而是使用此分层分布式命名系统。您可以通过几种方式做到这一点。一种方法是克里斯建议的CNAME。另一种方法是给第二台服务器一个固定的IP地址。既可以是真实的静态地址,也可以在DHCP服务器中进行保留。


1
不是我要找的答案。这是为了发展;我不想修改任何其他计算机,因为不需要从本地任何地方都可以访问域名(testsitebeta.dev)。我只想告诉我的计算机“处理名称X就像是Y”。
贝努伯德

3
在这种情况下,您想安装本地DNS服务器并将其用作解析器。
汉尼斯,2014年

4
本地DNS服务器似乎是解决方案。对于未来的访客,我发现这很有帮助:superuser.com/q/45789/75287
Benubird 2014年

@Benubird:我也在寻找相同的解决方案。但是没办法。您能否进一步说明如何设置?
杰·查克拉

3

/ etc / hosts的格式是“ IP”“主机名”-像 127.0.0.1 localhost

您需要CNAME在本地DNS服务器中实现所需的功能。您可以像使用“ testitalpha.dev”一样获得“ othersite.dev”的IP并将其链接到“ testitbeta.dev”,但是当IP更改时,您还必须更改/etc/hosts文件。


1

如果othersite.com具有动态IP,但始终可以通过名称访问,则必须始终通过名称引用它来依赖其注册的DNS。

您的解决方案是使testsitebeta.dev成为othersite.com的重定向URL。

ServerName testsitebeta.dev重定向/ http://othersite.com

这样,othersite.com始终可以工作(不会因主机条目错误而破坏它),并且testsitebeta.dev总是通过将名称解析为正确的IP重定向到othersite.com。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.