lighthttpd getenv("HTTP_AUTHORIZATION") 返回空
时间: 2023-06-17 12:07:32 浏览: 63
如果 `getenv("HTTP_AUTHORIZATION")` 返回空,则可能是因为服务器没有设置正确的认证信息。请确保在请求头中设置了正确的认证信息,例如:
```
Authorization: Bearer <token>
```
如果您使用的是 Basic 认证,则需要将 `<token>` 替换为经过 Base64 编码的用户名和密码组合,例如:
```
Authorization: Basic <base64-encoded-username-and-password>
```
如果您已经设置了正确的认证信息,请尝试重新启动服务器并再次发送请求。如果问题仍然存在,请检查服务器日志以获取更多详细信息。
相关问题
lighthttpd 下的cgi getenv("HTTP_AUTHORIZATION") 返回空
在使用 Lighttpd 时,如果您希望从 CGI 脚本中访问 HTTP 验证信息,需要对 Lighttpd 进行一些配置。默认情况下,Lighttpd 不会将 HTTP 验证信息传递给 CGI 脚本,因为这可能会存在安全风险。为了允许 CGI 脚本访问 HTTP 验证信息,请按照以下步骤进行操作:
1. 在 Lighttpd 的配置文件中添加以下行:
```
setenv.add-environment = (
"HTTP_AUTHORIZATION" => ""
)
```
这将启用 Lighttpd 将 HTTP 验证信息传递给 CGI 脚本。
2. 重新启动 Lighttpd 以使更改生效。
3. 在 CGI 脚本中,您应该能够使用 `getenv("HTTP_AUTHORIZATION")` 访问 HTTP 验证信息。
请注意,这可能会引入安全风险,因此请确保您的 CGI 脚本能够安全地处理 HTTP 验证信息。
lighthttpd 服务器下的cgi 获取 getenv("HTTP_AUTHORIZATION") 返回空
在lighttpd服务器下,获取HTTP认证头信息的方式稍有不同,需要使用`lighttpd.h`头文件中的`http_cgienv_get`函数获取HTTP认证头信息。示例代码如下:
```c
#include <lighttpd.h>
#include <stdio.h>
int main(int argc, char *argv[]) {
const char *auth_header = http_cgienv_get("HTTP_AUTHORIZATION");
if (auth_header) {
printf("Authorization header: %s\n", auth_header);
} else {
printf("Authorization header not found.\n");
}
return 0;
}
```
需要注意,`http_cgienv_get`函数返回的是HTTP头的值,而不是整个HTTP头。如果需要获取完整的HTTP头,可以使用`http_cgienv_headers`函数。