我无法理解问题所在。 我使用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标头。 你能告诉它为什么会发生这种情况,我该如何解决呢? 提前致谢
答案 0 :(得分:0)
您似乎正在运行apache2作为FastCGI。由于FastCGI apache无法识别Authorization
标头。您可以将此重写规则用作解决方法
RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]