使用“hosts”文件重定向

使用“hosts”文件重定向

好的,我知道如何使用“主机”文件重定向普通页面,但它不适用于某些页面,例如 http://rustledjimmies.com/ 或者 http://heyyeyaaeyaaaeyaeyaa.com/

例如,我想将 youtube.com 重定向到 rustledjimmies.com/。但在我按照通常的重定向方法操作后,它就是不起作用。

有什么想法可以解释为什么以及如何解决它吗?

这是我放入“hosts”文件的一个例子。

104.36.80.4 fb.com

该 IP 地址属于网站 rustledjimmies.com,但不知何故,当我将其写入“主机”时,它会显示一个不同的网站。

205.186.179.191 Facebook

这个是针对 heyyeyaaeyaaaeyaeyaa.com 的,但它根本没有响应(至少对我来说)

答案1

对于某些网站它不起作用。

对于小型网站来说,每台服务器(或每个 IP 地址)托管一个网站并不是一个好主意。在一个 IP 地址上托管多个网站是可能的,此功能称为虚拟主机。

但是服务器必须以某种方式检查您愿意打开哪个站点。HTTP 协议规范定义了一个Host标头(自 HTTP 1.1 以来是强制性的),其中包含您的浏览器正在请求的网站地址。服务器使用此标头来选择适当的虚拟主机。


以下是对 YouTube 的正常请求:

  • 在地址栏中输入http://youtube.com并按Enter
  • 您的计算机查询 DNS 服务器以将youtube.com域名解析为 IP 地址。
    • DNS 服务器的响应:46.28.247.104
  • 浏览器发送 HTTP 请求至46.28.247.104

    GET / HTTP/1.1
    Host: youtube.com
    
    • 服务器46.28.247.104识别youtube.com为其虚拟主机并为您提供服务。

现在我们假设您已经映射youtube.com192.168.0.100使用该hosts文件。

  • 在地址栏中输入http://youtube.com并按Enter
  • youtube.com的 IP 在文件中提供hosts,因此不需要 DNS 查找。
    • 系统告诉浏览器该youtube.com地址是192.168.0.100
  • 浏览器发送 HTTP 请求至192.168.0.100

    GET / HTTP/1.1
    Host: youtube.com
    
    • 服务器192.168.0.100无法识别youtube.com其虚拟主机,因此它以404错误代码响应。

相关内容