2009-10-08 6 views
3

По какой-то причине, если запросить файл, используя URL-адрес, например, как это:PHP: Есть ли способ изменить адрес запроса?

http://localhost/proxy.php?url=http://anintranetsite/file.jpg

Это работает! Я могу получить файл. Но если я использую,

http://127.0.0.1/proxy.php?url=http://anintranetsite/file.jpg

я не могу заставить его работать. Я не понимаю, что происходит ... Любые мысли о том, что может пойти не так?

Благодаря

+0

Есть ошибки? Является ли localhost в вашем файле hosts? У вас есть настройка виртуального хоста для localhost или 127.0.0.1? –

+0

Спасибо за ответ ... Хм ... просто, что брандмауэр внутренней сети жалуется, что он не разрешает доступ к определенным адресам, в которых он дает мне некоторые префиксы, такие как 10. *. *. * И 127. *. *. * , Помимо этого да, localhost находится в файле hosts, но у меня нет никакой настройки virtualhost afaik ... – Legend

+0

Полезно знать, а как насчет каких-либо ошибок? Это может показаться тривиальным, но точно, как вы знаете, что он не работает? –

ответ

1

Похоже, ваш браузер неправильно настроен прокси.

Aka «Без прокси для» должен содержать localhost И 127.0.0.1

+0

Wow! Спасибо ... Это работает для браузера ... Теперь есть глобальный способ настройки, чтобы я мог это сделать даже с помощью Java? Я имею в виду, я попробовал сетевой прокси и применил глобально в Ubuntu, но он, похоже, не работает ... – Legend

+0

Я не уверен, что это было бы специфично для приложения. Однако Java имеет некоторые системные переменные, которые будут делать то, что вы хотите. http://java.sun.com/javase/6/docs/technotes/guides/net/properties.html Так, например, вы должны установить http.proxy на свой прокси-сервер, а затем добавить 127.0.0.1 и localhost для nonProxyHosts. Это может работать как переменная среды, например% HTTP_PROXY%, но опять-таки это приложение. – Gus

+0

На самом деле посмотрите на это http://www.rgagnon.com/javadetails/java-0085.html рядом с нижним, вы можете указать эти переменные через командную строку, чтобы вы могли это сделать. Например, java.exe -Dhttp.nonProxyHosts = "*. Mycompany.com | * .mycompany.local | localhost" – Gus

1

звучит как проблема маршрутизатора/брандмауэра. localhost, вероятно, псевдоним для вашего имени машины, а не 127.0.0.1

+2

127.0.0.1 должен всегда разрешаться на вашем локальном компьютере - но если у вас есть серверы с именами, вы можете не получить правильный корень документа для «веб-сайта», к которому вы пытаетесь получить доступ. – HorusKol

+0

. Ах ... Я думаю, что я наконец-то добираюсь куда-нибудь ... Не возражаете ли вы мне сообщить, как изменить это так, что 127,0.0.1 указывает на мою локальную машину? Должен ли я редактировать файл/etc/hosts или есть ли другой файл? Thanks – Legend