Nginxでヘッダーにアンダースコアが使えない件

 

Nginxでヘッダーにアンダースコアが使えない!!!

 

◼︎解決方法

  •  ヘッダーのアンダースコア( _ )をハイフン( - )に変更する
  • (代替案) nginx.confに underscores_in_headers on を追記する

 

◼︎調べたこと

curl -i -H 'ACCESS_TOKEN: f1dea7d27c4ffd8************' -X GET http://hoge.com/api/v1/users/1

 

こんな感じでNginxに乗っけたAPIに、カスタムヘッダーを使ってリクエスト投げてたんですがうまく拾えてないみたい。調べてみたらこんなの出て来ました。

underscores_in_headers」ってオプション。

 

  

でもデフォルトでoffなのなぜ?調べたらHTTPの仕様で、ヘッダーに評価できない文字が含まれていたらアンダースコアに変換するらしい。なるほど。

 

Environment Variables in Apache – Apache HTTP Server Version 2.5

 

curl -i -H 'ACCESS-TOKEN: f1dea7d27c4ffd8************' -X GET http://hoge.com/api/v1/users/1

 

ヘッダを修正する方がよさそうですね。アンダースコアをハイフンに変更したらうまく拾ってくれました。