У меня есть простая тестовая страница PHP:
<?php
echo $_SERVER['HTTP_HOST'] . '<br/>';
echo $_SERVER['REQUEST_URI'];
?>
Когда я открываю эту страницу в браузере (я тестировал хром и ссылки), он дает мне ожидаемый результат:
10.1.25.222
/test.php
Но когда я получаю доступ к этому с curl 10.1.25.222/test.php
:
10.1.25.222<br/>HTTP://10.1.25.222/test.php
Давая мне HTTP_HOST
Я жду, но не REQUEST_URI
Я ожидаю
Я могу только предположить, что curl
должен отправлять весь URL в своем GET
запрос. Я протестировал оба приведенных ниже метода на Apache, и оба они работают и дают результаты, аналогичные вашим:
Что большинство браузеров, похоже, делают в своем HTTP-запросе:
GET /some/path HTTP/1.1
Host: www.domain.com
Что делает curl:
GET HTTP://www.domain.com/some/path HTTP/1.1
Host: www.domain.com