LoginSignup
2
1

More than 5 years have passed since last update.

リバースプロキシでUser-agentに応じて任意のリクエストヘッダを追加する

Posted at

リバースプロキシとして動作しているApacheでは、バックエンドのサーバにリクエストを中継する際に、任意のリクエストヘッダを追加することができる。アクセスしてきたデバイスがスマートフォンの場合のみリクエストヘッダを足したいニーズがあったので設定方法をメモしておく。

User-agentがスマートフォンの場合のみリクエストヘッダを追加する

httpd.conf
# User-Agentがスマホの場合は環境変数deviceにsmartphoneをセットする
BrowserMatch "(^MobileSafari|^Mozilla/5\.0 \((iPhone;|iPod;|Linux; U; Android .* Mobile|Linux; Android .* Mobile))" device=smartphone

# 環境変数deviceがsmartphoneの場合、環境変数isspにtrueをセットする
SetEnvIf device ^smartphone$ issp=true

# 環境変数isspが存在する場合、リクエストヘッダX-TEST-HEADERに値SPをセットする
RequestHeader set X-TEST-HEADER SP env=issp

注意点

  • RequestHeader ディレクティブでは環境変数の有無を条件にできるが、環境変数の値は条件にできないため、SetEnvIfディレクティブで環境変数deviceの値を判別している
  • mod_headers, mod_setenvifを読み込んでおく必要がある
2
1
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
2
1