我刚刚通读这个问题 ,当浏览答案时,我随机尝试了一些东西,并注意到http://admin.to和http://admin.to. 导致不同的地点。 两者都返回一个403错误,但是.to. 域redirect到一个完全不同的服务器。
这怎么可能? 我虽然这两个应该在技术上是相同的,那么在这里发生了什么?
实际上,DNS条目与预期相同(89.107.186.40)。 看起来不同的是虚拟主机。 很有可能,服务器为每个服务器名称都有一个虚拟主机,为其中的一个指定最终的点,而不是另一个。 这更像是一个Apache问题,而不是我想的DNS问题。
现在正如其他人所说, admin.to和admin.to.之间的区别admin.to. 是第二个是完全限定的名字,所以你的parsing器不会试图通过附加你的DNS search参数来解决它,而第一个将与search参数一起尝试。
举个例子,我把raphink.info放在/etc/resolv.confsearchpath中:
$ grep '^search' /etc/resolv.conf search raphink.info $ getent hosts www 74.125.77.121 raphink.info www.raphink.info $ getent hosts www.
第一个请求是www没有拖尾点,所以parsing器试图用searchpath解决它。 第二个请求是一个完全限定的名称,因为它有一个尾点,所以searchpath不被尝试,并且分辨率不会产生任何结果。
现在正如我所说的,在这种情况下,你的问题看起来更像是一个HTTP服务器而不是DNS,因为我在自己的机器上得到了相同的结果:
$ getent hosts admin.to 89.107.186.40 admin.to $ getent hosts admin.to. 89.107.186.40 admin.to
这个主机头问题的味道:
就DNS而言,你是正确的:有没有尾随. 该域名parsing为89.107.186.40 ,但居住在那里的服务器(与serverdomain.org名称相反)不了解何时parsing主机标头。
尾部的圆点意味着它是一个完全限定的名称,将由DNSparsing器进行不同的处理。
我理解它的方式, 最后表明它是一个完全合格的域名 。 这意味着这是查询的确切主机名。
如果你离开了。 最后,它会首先search你的域名。 所以,举例来说,如果你去了admin.to,而你碰巧是域名somedomain.com的一部分,那么它将首先查找admin.to.somedomain.com。 如果解决,那么它会去那个位置,而不是你想要的域名admin.to。