我有一个在localhost:1234上运行的HTTP代理。代理适用于我所做的所有Web请求。
我有一台运行在localhost:4567的服务器。我希望我的服务器的HTTP请求通过我的代理。应该简单吧?有没有办法让IE或任何其他浏览器这样做?
答案 0 :(得分:7)
通常,您可以为此配置浏览器设置。在Firefox中它的选项 - >高级 - >网络 - >连接(设置)。
IE会在检测到localhost URL时自动忽略代理。这一直是Fiddler等工具方面的荆棘。
然而,你可以经常通过字面意思来解决这个问题 http://somesite.com:1234。有人花时间注册“somesite.com”域以自动路由到127.0.0.1。这让IE误认为它是一个外部域,但应该在重定向到本地服务器时运行代理。
祝你好运。答案 1 :(得分:4)
是的,有办法!
在IE9中,如果您在“Internet选项”中手动配置了代理,则可以单击“高级”,然后只需将<-loopback>
添加到代理绕过列表中。在IE6中,当手动配置代理时,localhost URL将通过代理。只有IE7 +版本不会向代理服务器发送localhost请求。
如果您想要更全面的解决方案,可以创建自动代理配置脚本。它基本上是一个包含函数FindProxyForURL的javascript文件。您可以使用该脚本的URL配置Internet选项。所有HTTP请求都将查询FindProxyForURL以获取所需的代理服务器。因此,如果您希望所有网址都通过代理,您可以执行以下操作:
function FindProxyForURL(url, host) {
return "PROXY localhost:1234";
}
如果您只想要外部地址转到localhost代理,那么您可以执行以下操作:
function FindProxyForURL(url, host) {
if (isPlainHostName(host)) {
return "DIRECT";
}
return "PROXY localhost:1234";
}
答案 2 :(得分:2)
在Windows上:
转到Windows / System32 / Drivers / Etc
在以管理员身份运行的记事本中
在您的主机文件中添加以下内容:
127.0.0.1 mysite.local
然后代理将接收http://mysite.local处该主机的所有数据。
Ubuntu的: 的/ etc /主机
的Mac: http://decoding.wordpress.com/2009/04/06/how-to-edit-the-hosts-file-in-mac-os-x-leopard/
答案 3 :(得分:0)
浏览器绕过某些地址的代理。浏览器网络设置的“无代理”小节中对此进行了说明。 (FireFox)
由于使用“ localhost”而不是ip,它解析为默认ip 127.0.0.1,并且“ localhost”和“ 127.0.0.1”都明确列为“无代理”。
但是“ localhost”是一个很大的子集。人们可以使用127.0.0.2:4567或127.0.1.1:4567,他们说您可以使用超过1600万个IP地址。 这将解决问题(至少对于FF)。
答案 4 :(得分:-1)
这取决于您的浏览器。在Firefox中,检查“无代理”是否为空。默认情况下,Firefox将URL的代理阻止到localhost和127.0.0.1。