PHP:有没有一种方法可以更改请求地址?

3

有错误吗?您的hosts文件中是否包含本地主机?您是否为localhost或127.0.0.1设置了虚拟主机? - Mike B
谢谢回复...嗯...只是内部网络防火墙抱怨它不允许访问某些地址,其中给了我一些前缀,如10...和127..*.*。除此之外,是的,本地主机在hosts文件中,但我没有任何虚拟主机设置,据我所知... - Legend
好知道,那么错误呢?听起来可能很琐碎,但你究竟是怎么知道它不起作用的? - Mike B
哦...所以我知道的方法是,当我在浏览器中使用此URL指向一个内部网站并给我一张图片时,使用localhost可以正常工作,即它会给我这张图片(尽管以二进制格式呈现,因为我只是回显结果)。但是当我将localhost替换为IP地址时,它会指向一个“受限制”的页面,就像那些404页面之一,上面说我没有权限访问此页面... - Legend
2个回答

1

听起来你的浏览器代理配置有误。

即"无代理服务器"应该同时包含localhost和127.0.0.1。


哇!谢谢...这对浏览器有效...现在有没有一种全局的设置方式,以便我甚至可以使用Java来做到这一点?我的意思是,我尝试过在Ubuntu中使用网络代理并进行全局应用,但似乎并没有起作用... - Legend
我不确定,那取决于具体的应用程序。但是 Java 有一些系统变量可以实现您想要的功能。http://java.sun.com/javase/6/docs/technotes/guides/net/properties.html例如,您可以将 http.proxy 设置为您的代理,然后将 127.0.0.1 和 localhost 添加到 nonProxyHosts。这可能作为环境变量工作,例如 %HTTP_PROXY%,但再次强调,这取决于应用程序。 - Gus
实际上,看一下这个链接http://www.rgagnon.com/javadetails/java-0085.html,在底部你可以通过命令行指定这些变量,因此你可以在那里进行操作。例如:java.exe -Dhttp.nonProxyHosts=".mycompany.com|.mycompany.local|localhost" - Gus
我不知道我是怎么解决的...但现在它可以工作了...我写了一个小型的中继代理,并请求代理与内部服务器通信...感谢所有的帮助... - Legend

1

听起来像是路由器/防火墙问题。localhost 可能被别名为你的机器名称而不是 127.0.0.1。


2
127.0.0.1 应该始终解析为本地计算机 - 但如果您有基于名称的服务器,则可能无法获取您尝试访问的“网站”的正确文档根目录。 - HorusKol
啊...我想我终于有所进展了...你介意告诉我如何修改它,以便127.0.0.1指向我的本地机器吗?我应该编辑/etc/hosts文件还是其他文件?谢谢。 - Legend

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接