Laravel 无法在 nginx 请求中获取参数 header

Laravel can't get param header in request with nginx

我正在处理一个 Laravel 项目(一个 API),我在请求 header.

中遇到自定义参数问题

我需要在请求中发送一个令牌header,所以我只是在我的请求中添加一个参数api_token

当我在本地配置 apache2 时,我可以在 Laravel 中使用 $request->header('api_token') 获取我的 header 请求参数,但是当我在我的服务器上进行 tr 时配置 nginx,我总是得到 null

对我来说,nginx 和 header 请求有问题,我该怎么办?

有什么想法吗?也许它不是来自 nginx...

那是因为默认情况下 Nginx 不允许 header 带有下划线。您只需将 header 参数更新为 api-token:

$request->header('api-token');

或者您可以配置您的 Nginx 配置以允许 header 带有下划线。在 server 块之间的某处,添加 underscores_in_headers 指令,如下所示:

server {
    ...
    underscores_in_headers on;
    ...
}

另外不要忘记重新加载您的 Nginx 配置。详细了解此 underscores_in_headers 指令 here.

希望这能解决您的问题。