如何设置 Chrome 来本地引用主机名查找而不是从标准 etc/hosts 文件引用?
在调试网站时,有时在C:\Windows\system32\drivers\etc\hosts用本地主机替换某些域名,从而允许我测试可能与实际站点冲突的网站或域名的即时版本。
我能否以模拟和简化此过程的方式设置 Google Chrome ?
我不会修改浏览器实例,使其表现得好像 etc/hosts 已被修改,尽管这可能会给扩展带来太大的安全风险。
答案1
我刚刚发现主机切换器Chrome 扩展程序正是这样做的 ;)
答案2
您可以--host-resolver-rules
在启动 Chrome 时使用该参数,例如:"C:\Program Files\Google\Chrome\Application\chrome.exe" --host-resolver-rules="MAP example.com localhost","MAP example2.com localhost:1234"
答案3
我曾经使用过(现在仍在使用)主机管理我一直很虔诚地使用隐身模式,但每次都要清空缓存或打开一个新的隐身窗口,这一直是一件苦差事,所以去年我为自己开发了一个 Chrome 扩展程序来帮助解决类似的情况,最近我在 Chrome 网上应用店发布了一个非常粗糙的版本,它叫做现场主持人。
要点是,虽然 @JdeBP 是对的,设置代理是正确的解决方案,但这通常不是一种选择。Chrome 扩展无法准确复制更改主机文件时发生的情况,因此 LiveHosts 现在所做的是:
- 允许您设置多个主机名/IP 条目;
- 检测对某个已定义主机名的请求;
- 使用适当的 HTTP 主机标头将请求重定向到所需的 IP;
- 在地址栏 URL 中添加一个视觉(我承认很丑陋)的引用,它看起来像
http://127.0.0.1/www.example.com/whateverelse
; - 同时允许不同选项卡中的不同主机/IP 配对。
虽然不是很漂亮,但对于想要快速切换环境的标准 Web 开发人员来说已经足够了。当然,有几个注意事项:
- 根据服务器的不同,网页中引用网站 URL 的部分内容(如 href 和 src 属性)可能与原始内容不同;
window.location
具有不同的值,可能会影响 JavaScript 片段;- 大多数跨域请求将无法工作。
答案4
这虚拟主机插件是唯一一个符合我预期的插件。
无需主机重定向或 DNS 即可访问服务器的虚拟主机。