我正在尝试https://example.com/en/b9ah
使用 hosts 文件来阻止该网站。
我进入文件资源管理器,此电脑,选择 Windows、System32、驱动程序等、主机文件,复制主机文件并将其粘贴到我的桌面上,然后在记事本中打开该复制的版本。
我输入了(0.0.0.0 https://example.com/en/b9ah
)没有www
,只有https://
。
我保存了从记事本中关闭的文件,选择了桌面上的复制版本,将其拖入带有主机文件的文件资源管理器中,放入窗口,然后收到消息“是否要替换”,我确认了替换,确认了管理员访问权限,然后我打开了原始主机文件,以确保我的更改在那里并且确实存在。
在有人建议我重启电脑或者删除缓存或 cookies 之前,我还设置了另一个网站作为测试:
www.another.com =0.0.0.0 www.anotherexample.com
在重复与我实际想要阻止的网站相同的过程后,这个仍保留着旧缓存和 cookie 的网站被阻止了。
但我想要屏蔽的网站却没被屏蔽。
因此,我得出结论,问题出在我使用的 hosts 文件 URL 上。如何正确将此站点添加到 hosts 文件以阻止它?
我0.0.0.0 example.com
按照吩咐做了,但仍然没有效果:
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
0.0.0.0 example.com
像这样:
和这个:
我究竟做错了什么?
答案1
“https” 不是一个网站。它是一种协议。协议前缀不属于您的 hosts 文件。hosts 文件提供主机路径 - 它不提供“https”或“纯文本”等协议的路径。
答案2
@user165568 是 100% 正确的 - 为了澄清他的意思 - 在“hosts”文件中,您可以阻止“example.com”以阻止与该域相关联的任何 URL(您需要一个单独的条目www.example.com阻止 www 版本)。
如果您正在考虑更具体地阻止域名级别,那么您将需要一个替代策略,例如针对您的域名的“URL Blocker”插件。
为了清楚起见,这与您输入的原始域名没有任何具体信息。
答案3
有什么方法可以用主机文件阻止这个网站吗?我只是做得不正确?
您的主机文件中的条目似乎是正确的。当您输入地址或刷新网站时,如果仍在加载,则意味着您的浏览器从缓存中获取数据。
请尝试重新加载网站包括缓存,通常使用 Crtl+F5(例如使用 Chrome、Firefox 等)应该可以解决问题。
除非存在其他问题,例如您忘记保存 hosts 文件、DNS 缓存问题等,否则此解决方案将不起作用。执行 ping 测试以检查是否存在其他问题:
ping example.com
(不含 hosts 文件条目)- 添加 hosts 文件条目(例如
0.0.0.0 example.com
) ping example.com
再次
如果问题仍然存在,请告知我们 ping 测试的结果。
它只是 https:
https://
不是域名的一部分。使用 hosts 文件时,您可以完全忽略它。但您不能忽略其他前缀,例如www
。顶级域名(例如.com
)之前和协议之后的任何内容SomeProtokoll://
都相关。请注意,www.something.com
和something.com
需要在您的 hosts 文件中成为 2 个单独的条目。
我开始怀疑,依赖主机文件来屏蔽网站有什么意义,因为这个垃圾只能屏蔽 URL 中带有 www 的网站
它不仅限于以www
作为前缀的网站,也不是垃圾。它只是不是为了屏蔽网站而设计的。它的目的是将 IP 地址映射到域名(例如,如果您希望将域名解析为与 DNS 服务器提供的 IP 不同的 IP,或者 DNS 服务器不可用)。您可以使用它来屏蔽网站,但它仍然是一种可能无法满足您所有要求的解决方法。(hosts 文件实际上是 DNS 的前身)
其他想法:您可能需要考虑重新路由到127.0.0.1
而不是0.0.0.0
,甚至可能添加显示“此网站已被阻止”的本地 HTTP 服务器。但老实说,我会使用第三方应用程序(请参阅这里)或防火墙(如果您使用的话)进行阻止。