使用代理 .pac 文件时,如何让 IE 使用我的 hosts 文件?

使用代理 .pac 文件时,如何让 IE 使用我的 hosts 文件?

我有以下行C:\WINDOWS\system32\drivers\etc\hosts

192.168.12.1  myapp.local

当我打开命令提示符并输入“ ping myapp.local”时,我收到了来自 的响应192.168.12.1

但是,当我打开 IE7 并http://myapp.local在地址栏中输入“ ”时,出现了 DNS 错误。我的 LAN 连接设置为使用 proxy.pac 文件,IE 似乎试图将该文件用于此地址。

如何让 IEhosts首先检查我的文件?

答案1

您的网络的 proxy.pac 是什么样子的?您有权修改它吗?

我的网络中有代理自动配置。我像您的一样在 XP 机器上设置了 hosts 文件条目,但我仍然能够在 IE8 中连接到 myapp.local(抱歉,手边没有 IE7 可以测试)。

我猜测你的代理自动配置会尝试解析主机名(我的不会);而且解析过程不使用 hosts 文件,因此会失败。

如果您可以修改 proxy.pac,请将以下内容添加到开始FindProxyForURL(在任何其他代码之前)

if(dnsDomainIs(host, ".local")) { return "DIRECT"; }

将该行中的“host”更改为与 FindProxyForURL 的第二个参数匹配。希望这可以防止自动配置脚本尝试解析您的 .local 主机名。

答案2

在“工具”->“Internet 选项”->“连接”选项卡->“LAN 设置”下,是否选中了“使用 LAN 的代理服务器...”框?如果选中,请选中另一个框“绕过本地地址的代理服务器”,然后单击“高级”按钮并将 myapp.local 添加到底部的“例外”列表中。

答案3

我不确定 proxy.pac 因为我没有听说过这个,所以也许忽略我的回答。

它应该先检查你的主机文件,因为可能缓存了旧条目。关闭 Internet Explorer,转到(Vista/7 上为提升权限)命令提示符并输入

ipconfig /flushdns

并重新启动 IE。

现在测试一下,如果它仍然因为代理文件而无法工作,(再次重申,我在这方面经验不足),请尝试将其添加到代理列表中的例外情况中。

由于您 ping 的是正确的 IP,我认为这只是缓存问题,因为我有时在添加条目后也遇到同样的问题。对我来说,重新启动通常可以解决问题。

相关内容