簡単なテストがありますPHPページ:
<?php
echo $_SERVER['HTTP_Host'] . '<br/>';
echo $_SERVER['REQUEST_URI'];
?>
ブラウザでこのページにアクセスすると(Chromeとリンクをテストしました)、期待する出力が得られます。
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
がGET
リクエストでURL全体を送信している必要があると想定することしかできません。以下の両方の方法をApacheに対してテストしましたが、どちらも機能し、現在の状況と同様の結果が得られるようです。
ほとんどのブラウザがHTTPリクエストで行うように思われること:
GET /some/path HTTP/1.1
Host: www.domain.com
カールがしているように見えること:
GET HTTP://www.domain.com/some/path HTTP/1.1
Host: www.domain.com