1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

アンダースコア_付のヘッダ情報を、mod_rewrite で修正する

Last updated at Posted at 2016-08-22

Apache を新しくしたところ、一部のリクエストヘッダ情報が参照できない問題が発生。
https://httpd.apache.org/docs/trunk/new_features_2_4.html

リクエストヘッダのフィールド名にアンダースコアが含まれていると、不正なフィールドとして Apache が落とすとの事です。MY_VERSION みたいな感じ。

サーバ側で対処する方法。

RewriteEngine On
# ヘッダの MY_VERSION に1文字以上入ってたら
RewriteCond %{HTTP:MY_VERSION} .+ 
# 環境変数 HTTP_X_MY_VERSION に値を入れる ※1
RewriteRule ^ - [env=HTTP_X_MY_VERSION:%{HTTP:MY_VERSION}]
# ↑の環境変数から、ヘッダに X-MY-VERSION を入れる ※2
RequestHeader set X-MY-VERSION "%{HTTP_X_MY_VERSION}e" env=HTTP_X_MY_VERSION

(Rack サーバの場合、※1 が rack_request.env に入ってくるので、※2 は無くても同じです)

mod_rewrite は素人で苦しかったですが、↓サイトさんと、公式が参考になりました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?