我有以下行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,我认为这只是缓存问题,因为我有时在添加条目后也遇到同样的问题。对我来说,重新启动通常可以解决问题。