使用“hosts”文件重定向

Lin*_*nas 2 redirection 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 fb.com

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

gro*_*taj 6

它不适用于某些网站。

每个服务器(或每个 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
    
    Run Code Online (Sandbox Code Playgroud)
    • 服务器 at46.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
    
    Run Code Online (Sandbox Code Playgroud)
    • 服务器 at192.168.0.100不能识别youtube.com为它的虚拟主机,因此它以404错误代码响应。