Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何强制cURL发送完整的URL作为请求目标?_Php_Url_Curl - Fatal编程技术网

Php 如何强制cURL发送完整的URL作为请求目标?

Php 如何强制cURL发送完整的URL作为请求目标?,php,url,curl,Php,Url,Curl,如何强制curl在httpget请求中包含完整的URL 不工作: GET /some/path HTTP/1.1 Host: my-domain-here.com ... 我希望它能工作: GET http://my-domain-here.com/some/path HTTP/1.1 Host: i2.wp.com 因此,我希望主机始终包含在GET行中。如何使用CURL/PHP实现这一点? 服务器只能处理绝对URL。据我所知,PHP cURL包装器并没有公开这样做的方法 而且,即使您指定了

如何强制curl在httpget请求中包含完整的URL

不工作:

GET /some/path HTTP/1.1
Host: my-domain-here.com
...
我希望它能工作:

GET http://my-domain-here.com/some/path HTTP/1.1
Host: i2.wp.com
因此,我希望主机始终包含在GET行中。如何使用CURL/PHP实现这一点?
服务器只能处理绝对URL。

据我所知,PHP cURL包装器并没有公开这样做的方法

而且,即使您指定了不同的主机头,cURL也会自动更改主机头。 例如:

curl -v --dump-header - -0 -H 'Host: my-domain.com' http://subdomain.my-domain.com/something.html
将忽略自定义标题并发送以下内容:

GET /something.html HTTP/1.0
User-Agent: curl/7.35.0
Host: subdomain.my-domain.com
Accept: */*
您可以做的是:


据我所知,PHP cURL包装器并没有公开实现这一点的方法

而且,即使您指定了不同的主机头,cURL也会自动更改主机头。 例如:

curl -v --dump-header - -0 -H 'Host: my-domain.com' http://subdomain.my-domain.com/something.html
将忽略自定义标题并发送以下内容:

GET /something.html HTTP/1.0
User-Agent: curl/7.35.0
Host: subdomain.my-domain.com
Accept: */*
您可以做的是:

curl始终充当正确的HTTP客户端。请求目标,即GET后面的目标,只包含绝对路径和可选的查询

因此,不可能让curl将绝对URL作为请求目标发送到源服务器。

curl始终充当正确的HTTP客户端。请求目标,即GET后面的目标,只包含绝对路径和可选的查询


因此,不可能让curl将绝对URL作为请求目标发送到源服务器。

至少在命令行中,如果您将curl配置为使用HTTP代理进行请求,它会发送绝对URI。即使您没有使用代理,也可以指定它使用实际服务器作为代理服务器,然后您的服务器将在请求中接收绝对URI。

至少在命令行中,如果您将curl配置为使用HTTP代理进行请求,curl会发送绝对URI。即使不使用代理,也可以指定它使用实际服务器作为代理服务器,然后服务器将在请求中接收绝对URI。

curl/7.29.0允许覆盖主机头。curl/7.29.0允许覆盖主机头。curl使用PHP也可以这样做,我正在寻找一种方法来防止它和froce cURL发送相对URL。你的意思是像使用标志:-proxy1.0 example.com:80?cURL使用PHP也可以这样做,我正在寻找一种方法来防止它和froce cURL发送相对URL。你的意思是像使用标志:-proxy1.0 example.com:80?