我发现许多网站仅在通过其FQDN访问它们时才显示其网站内容(例如,example.com)。当尝试通过其IP地址进行访问时,它们显示404站点未找到错误。

是否有充分的理由为什么网站所有者不希望通过IP地址直接访问其网站,而不希望通过DNS进行访问?您的网站可以使用直接IP访问吗?

#1 楼

请注意,通过域名访问的网站可能不会直接托管在IP地址的根目录下,即example.org可以映射到123.45.67.89/~example。对于普通的Web主机来说,这很常见,因为它们无法为每个网站分配IP地址-这将非常浪费。 IP地址webmasters.stackexchange.com(在我链接到的网站的右侧)。尽管IP地址确实进入了StackExchange页面,但它并没有指向网站站长部分,该地址可能位于198.252.206.140之类。需要一个静态IP地址。如果由于某种原因必须更改IP地址,则无法重定向用户。而使用域名,只需更新DNS记录以指向新的IP地址即可。请记住,不要记住名称和结尾。

默认情况下,可以通过域名以及IP地址访问网站。关于这个问题的不同答案/评论提供了不同的观点,我不想抄袭。希望互联网能够正常工作。此外,普通用户永远不会随机找到您网站的IP地址,他绝对不会开始使用该IP地址共享指向您网站的链接。因此,在SEO和安全性方面的任何努力肯定会花在其他地方。

评论


我认为您的最后两段没有回答这个问题。在我对问题的理解中,OP并不是在问是否可以仅通过IP地址而不是域名来提供网站,而是要问是否有任何故意阻止用户通过IP地址访问该网站的理由? 。

– O. R. Mapper
14年6月27日在11:34

一个小小的更正:本身,whois查找只会向您显示域名的注册状态和联系信息。 IP地址由DNS记录查找确定。 Who.is是一项服务,在查找域名时会同时向您显示两者。此外,您只会找到stackexchange.com的whois信息,而不会找到webmasters.stackexchange.com。 gwhois.org/webmasters.stackexchange.com+dns

–iglvzx
2014年6月27日12:17



@ O.R.Mapper和iglvzx:非常感谢你们!我已经更新了我的答案以修正您的言论,并尝试从其他答案中尽可能少地复制,这对阅读很有趣。

– ljacqu
14年6月27日在12:39

以及youtube-如果您ping youtube,并获得IP地址173.194.41.161,您最终会获得Google的主页。

–野生
2014年6月27日18:51



如果强制实施SSL,则可能是另一个问题(确实应该这样做)。

–林é
14年6月29日在15:04

#2 楼

HTTP的原始版本不包含任何用于客户端指定主机名作为请求一部分的机制。它连接到服务器,仅发送URL的路径部分。对HTTP协议的早期修改之一是为客户端添加了发送其他“标头”信息(包括主机名)的功能。

20年前,浏览器对虚拟主机的支持非常差。那时,有充分的理由也可以仅从IP地址提供内容。一小部分客户端不会发送主机头。现在,主机名是每个浏览器和网络搜寻器发送的标准标头。

实际上,我发现如果服务器响应我的请求,则不太可能满足在IP地址上查找内容的请求网站。我倾向于看到仅IP请求:


对于曾经使用该IP地址的网站
恶意软件访问的尝试

我现在更喜欢只为IP地址请求提供404错误,而不是为我的网站提供服务或重定向到我的网站。我的服务器还配置为向无法识别的主机名提供404页,如如何处理恶意域重定向的答案中所述?

评论


我偶尔尝试通过其IP地址访问网站;每当我怀疑DNS可能会出现问题时。在这种情况下,我尝试找出该网站的IP地址,然后通过该地址打开网站。如果我希望正常域名中的网站只能通过其IP加载,我知道我必须修复有关DNS的某些问题,但是如果收到错误消息,我总是会认为网站服务器上的内容已损坏,并且我只需要等待它修复即可。

– O. R. Mapper
14年6月27日在11:37

如今,许多网站都使用共享主机,因此希望能够在没有主机名的情况下访问它们是不切实际的。该StackExchange网站仅提供IP地址不可用。有许多共享它的StackExchange子域网站。如果仅使用IP地址尝试,则StackExchange将显示一个自定义404页面。

–斯蒂芬·奥斯特米勒(Stephen Ostermiller)
14年6月27日在11:48

#3 楼

特别是如果您拥有一个共享主机或自己托管多个域的服务器,则无法通过IP访问“网站”。对于您自己的服务器,您可以定义输入IP后到达的主域。对于共享主机,这是不可能的。

正如@Ijacqu所提到的,IP可以轻松更改。

如果您想通过其服务器IP访问网站,则应将301或302肯定地添加到域本身。添加了一个小型HTML站点,只是将“欢迎使用123.456.789.123”作为默认站点,因为该计算机上托管了多个客户项目,而我只需要为该默认站点提供白标解决方案。我使用apache vhosts进行了配置。

#4 楼

从SEO角度来看,这是一场灾难。

如果您拥有一个网站,例如stackexchange.com,并且也可以从ip地址进行访问,这将导致重复的内容。这将破坏您的排名,并使您的用户感到困惑,他们将在Google上搜索并找到2个针对相同主题的结果(一个可通过域名访问,另一个可通过ip地址访问)

从不使一个域可以从ip地址访问。如果服务器上有多个域,请禁用直接IP地址访问。

评论


自从ARPA-NET以来,我一直在这里。这个说法是不正确的。最初,没有虚拟主机,可以通过域名和IP地址访问所有网站。今天,这仍然极为普遍。搜索引擎足够聪明,可以知道哪些IP地址为哪些域名提供服务,因此请勿将其视为重复的内容,而应视为同一站点。

– closetnoc
14年6月27日在17:41

通过更新nginx之后,我没有修复默认服务器,网站被破坏了。在直接IP地址访问中花了6个月的时间才完成301个所有10.000.000爬网的链接:(

–krokola
2014年6月27日19:55



而且,如果您认为没有SEO问题(但我完全不同意),那么点击率是一个很大的问题。漫游器会两次点击以抓取相同的内容。如果您的网站每天收到2.000.000的bot点击量,并且您允许直接ip地址访问,则bot的收益将为4.000.000完全对您没有好处。

–krokola
14年6月27日在20:18

对于SEO,可以添加以避免重复的内容。

–问题溢出
14年6月28日在2:14

这个答案肯定是不正确的。许多网站都可以通过其IP地址进行访问,这不会引起搜索引擎的麻烦,也不会杀死您的“ SEO”。重复的内容是自网络开始以来一直存在的技术问题,搜索引擎具有多种处理方式。这不是世界末日。就是说,如果您偏爱索引编制,那么添加rel = canonical是引导搜索引擎朝着这一方向发展的好方法。

–约翰·穆勒(John Mueller)
2014年7月1日在20:46

#5 楼

仅2美分,我的Web服务器上就有几个网站(大约8个),它们的IP地址都完全相同。通过使用主机头,FQDN可以帮助Web服务器(在我的示例中为Apache)将请求定向到相关网站的正确目录。默认情况下,该IP地址定向到我公司的网站。从2001年左右开始,我发现这是大多数Web托管提供商的规范,尤其是考虑到IPv4地址的当前状态。仅出于某种背景,我为Voyager.net(在密歇根州)工作了大约8年,而Voyager是一家托管公司和ISP,托管了80,000多个域,但我不知道我们托管了多少个网站。在旁注中,根据定义,FQDN用于将人类可读的地址分配给IP地址,以便我们可以更轻松地记住它们。再次只是我的2美分。

#6 楼

从安全角度来看,这是明智之举。

大多数人流量大的网站都会在某个地方使用CDN。因此,任何尝试进行的DOS或DDOS攻击都只会通过CDN服务器消散,而不会到达用户站点。

但是,如果用户知道该站点的IP地址,则可以直接对该IP发起攻击并立即关闭服务器。因此,大多数CDN都会为您提供隐藏服务器IP地址的选项。因此,向尝试访问该网站的用户提供404是一个不错的选择。可以通过.htaccess文件或通过将站点托管在默认服务器文档根目录之外的其他位置来完成此操作。

#7 楼

每个人都忘了共享IP托管的地方是,它就像1000辆拥有相同许可证号的汽车。如果某人在做恶意行为,那么流量将显示在目标服务器上,就像来自IP一样。它被阻止,其他人也都使用它。您关心的任何站点都应该拥有自己的IP。您发送的任何邮件应来自您的IP,而不是共享的IP。我自从1994年以来一直在这里工作。

评论


这不能回答问题。问题是该站点是否可以通过IP地址访问,而不是站点是否应该位于共享主机上。即使您拥有自己的IP地址,您可能也可能不想通过输入IP地址来使站点可用。您可能还想在一个IP地址上托管几个自己的站点。

–斯蒂芬·奥斯特米勒(Stephen Ostermiller)
19年7月26日在14:42