我有一个 PHP 脚本可以为我的网站缓存做准备。
我正在尝试绕过 Nginx 前端并从 Apache 后端获取标头。
以下示例有效(通过命令行):
curl -I -H "Host: example.com" 127.0.0.1
但是,当我尝试在 PHP 中做同样的事情时 - 它没有。
$headers = array("Host: example.com");
$url = "127.0.0.1";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt ($ch, CURLOPT_HEADER, true);
curl_setopt ($ch, CURLOPT_NOBODY, true);
curl_setopt ($ch, CURLOPT_HTTPHEADER, $headers);
$ret = curl_exec ($ch);
curl_close ($ch);
echo "$ret";
这总是返回我的 apache 虚拟主机文件中列出的第一个网站——而不是“主机”http 标头中列出的网站。
知道为什么它可以通过命令行正常工作 - 但不是在 php 脚本中?