У меня есть простая тестовая страница 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