Apache没有看到授权'标题是通过curl发送的

时间:2014-05-25 20:25:58

标签: php apache curl http-headers authorization

我无法理解问题所在。 我使用curl发送请求,如下所示:

curl --header "Authorization: Bearer asd421123eda" https://server/example

一个用于调试的服务器站点我使用

 die("header: ".print_r(getallheaders()));

我得到以下内容(ips和主机名由我更改)

Array
(
    [Accept] => */*
    [User-Agent] => curl/7.30.0
    [Connection] => close
    [X-Accel-Internal] => /examp
    [X-Forwarded-For] => 19.13.131.123
    [X-Real-Ip] => 131.41.132.141
    [Host] => host.ht
)

如果我再放一个标题:

 curl --header "Authorization1: Bearer" https://serverexample.com

我在header数组中看到了这个标题

 Array
 (
    [Authorization1] => Bearer
    [Accept] => */*
    .....
)

对我来说,apache正在过滤某处的authoriztion标头。 你能告诉它为什么会发生这种情况,我该如何解决呢? 提前致谢

1 个答案:

答案 0 :(得分:0)

您似乎正在运行apache2作为FastCGI。由于FastCGI apache无法识别Authorization标头。您可以将此重写规则用作解决方法

RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]