我有一个简单的测试 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
我我所期望的
答案1
我只能假设它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