Answers:
我刚发现Host Switch Plus Chrome扩展程序可以做到这一点;)
实现您实际目标的一种方法根本不涉及Chrome扩展程序,甚至根本不涉及Chrome。这样的方法是设置一个智能代理HTTP服务器,将Chrome指向它,然后将重写规则添加到代理服务器中,以重写后台的URL。
有很多人使用各种不同的代理HTTP服务器来执行此操作-太多了,无法在此处给出答案。它们这样做是为了切换广告,Web Bug等,但是其原理和机制与您要执行的操作相同。他们希望WWW浏览器正常获取特定的URL,但其接收到的实际内容是某些其他(本地或其他)URL的内容。WWW浏览器唯一需要知道的是它通过代理服务器与Internet通讯。
有关示例,请参见SourceForge上的广告Zapper。这是一个Perl脚本,可与Squid代理HTTP服务器一起使用,以在代理服务器中即时重写URL。从配置数据库中可以看到,人们已经将其机制用于多种目的,从确保始终看到新闻服务文章的“可打印”形式到摆脱互联网色情网站上的随机广告重定向。
请注意,这远远好于您对hosts
文件进行的操作,该文件是操作WWW服务的不合适机制。 hosts
仅处理名称→地址查找,将需要进行名称→地址查找的其他所有内容(在WWW浏览器之外)进行筛选,并且(您可能已经知道)需要将每个重写的主机名另外设置为虚拟主机目标内容HTTP服务器。相比之下,这种重写代理HTTP服务器处理URL,并且仅影响HTTP和首先配置为使用它的WWW浏览器。因此,它可以做一些事情,例如只重写JavaScript URL,而将其他所有东西都留在同一个WWW网站上。将整个主机名重写为一个;并(进一步)进行模式匹配。(请注意,在Ad Zapper的配置数据库中有这种情况的实例。)而且可以做到的事情是,一个WWW浏览器通过重写代理查看世界,而另一个WWW浏览器直接在单台计算机上同时查看它。
我虔诚地使用(并仍在使用)HostAdmin,但是每次都要清空缓存或每次打开新的隐身窗口一直很麻烦,因此去年我最终为自己开发了一个Chrome扩展程序,以解决类似情况,并且我最近在Chrome网上应用店中发布了一个非常粗糙的版本,称为LiveHosts。
要点是,尽管@JdeBP是正确的,并且设置代理将是正确的解决方案,但这通常不是一个选择。Chrome扩展程序无法完全复制当您更改主机文件时发生的情况,因此LiveHosts现在所做的是:
http://127.0.0.1/www.example.com/whateverelse
;它虽然不漂亮,但对于试图在各种环境之间快速切换的标准Web开发人员来说已经足够了。当然有一些警告:
window.location
具有不同的值,可能会抛出JavaScript代码段;尝试扩展DNS Overrider:
Using DNS Overrider you can replace hostname on the fly without access to
system settings such as hosts file. DNS Overrider enables you to select what
rules to apply via the extension settings page.
https://chrome.google.com/webstore/detail/dns-overrider/acmhaiiijfheggcaanjlgpampclpbnoh/