![当 ping 工作时,浏览器似乎忽略了 hosts 文件?](https://linux22.com/image/1482812/%E5%BD%93%20ping%20%E5%B7%A5%E4%BD%9C%E6%97%B6%EF%BC%8C%E6%B5%8F%E8%A7%88%E5%99%A8%E4%BC%BC%E4%B9%8E%E5%BF%BD%E7%95%A5%E4%BA%86%20hosts%20%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我正在尝试让 xyz.com 在我的计算机(OS X El Capitan)上始终映射到 google.com (216.58.219.206)。
对 /etc/hosts 文件进行了以下更改:
216.58.219.206 xyz.com
我清除了浏览器中的缓存,重新启动了 - 毫无作用。浏览器仍然转到原始 xyz.com 页面。Ping 到 xyz.com 确实转到了 google。
我错过了什么?
答案1
您的浏览器正在告诉服务器,它正在尝试访问xyz.com
,而不是google.com
。
HTTP/1.1
及更高版本(几乎没有使用 1.0 的版本)要求浏览器向服务器发送一个Host:
标头,告知服务器浏览器正在尝试连接哪个主机名,以防服务器上的同一 IP 地址上托管有多个网站。
/etc/hosts
甚至 DNSCNAME
记录欺骗也无法解决这个问题。
您可以通过使用/etc/hosts
映射xyz.com
到(您的本地环回 IP 地址)来解决此问题,并运行仅绑定到的127.0.0.1
轻量级进程,并发出 HTTP 重定向()将浏览器指向。httpd
127.0.0.1:80
302 Found
google.com
xyz.com
我相信这将允许您在浏览器中键入并自动访问google.com
,但我很确定您的地址栏将更改为显示google.com
。希望这是可以接受的。