すべてのプロダクト
Search
ドキュメントセンター

CDN:EdgeScript 組み込み変数

最終更新日:May 27, 2025

このトピックでは、EdgeScript 組み込み変数と対応する NGINX 変数について紹介します。

説明
  • 組み込み変数名の前の特殊記号 ($) は、組み込み変数のプロパティを強調しています。削除しても使用には影響しません。

  • パラメーターと同じ方法で組み込み変数に値を割り当てないでください。

  • 各 EdgeScript ルールは最大 200 個の変数をサポートします。 200 個を超える変数がある場合は、「関数の分割例」を参照して、ロジック全体を複数のユーザー定義関数に分割し、各ユーザー定義関数が 200 個以下の変数を含むようにしてください。

EdgeScript 組み込み変数

組み込み変数名

説明

対応する NGINX 変数

$arg_{name}

クエリ文字列 内の name パラメーターの値。 クエリ文字列 は、HTTP リクエスト内のリクエストパラメーターを指します。

$arg_

説明

{name} にハイフン (-) が含まれている場合は、$arg_ 変数を使用する代わりに、req_uri_arg 関数を使用して値を取得する必要があります。たとえば、リクエスト http://example.com/1.jpg?example-demo=123 の場合、値を取得する関数は req_uri_arg('example-demo') です。

$http_{name}

リクエストヘッダーの name フィールドの値。

$http_

説明

{name} にハイフン (-) が含まれている場合は、アンダースコア (_) に置き換える必要があります。たとえば、X-USER-ID$http_x_user_id に対応します。

$cookie_{name}

リクエスト Cookie ヘッダーの name フィールドの値。

$cookie_

説明

{name} にハイフン (-) が含まれている場合は、$cookie_ 変数を使用する代わりに、req_cookie 関数を使用して値を取得する必要があります。たとえば、リクエスト cookie:example-demo=123 の場合、値を取得する関数は req_cookie('example-demo') です。

$scheme

プロトコルタイプ。

$scheme

$server_protocol

プロトコルバージョン。

$server_protocol

$host

元のホスト。

$host

$uri

元の URI。

なし

$args

$args は、現在の HTTP リクエスト内のすべてのリクエストパラメーターを表しますが、疑問符 (?) は含まれません。例: http://example.aliyundoc.com/1k.file?k1=v1&k2=v2

  • $arg_k1 は、対応する v1 値を取得できます。

  • $args は、疑問符 (?) を除く、リクエストパラメーター文字列全体 (k1=v1&k2=v2) を取得できます。

$args

$request_method

リクエストメソッド。

$request_method

$request_uri

uri+'?'+args の内容。

$request_uri

$remote_addr

クライアント IP アドレス (x-forwarded-for リクエストヘッダーで転送された最初の IP アドレス)。

$remote_addr

関数の分割例

ルールに 200 個を超える変数が含まれている場合は、ロジック全体を複数のユーザー定義関数に分割し、各ユーザー定義関数が 200 個以下の変数を含むようにする必要があります。

#変数の数が制限を超えている場合は、次のように分割できます
def judeg_arg() {
  #パラメータ判定に関連するロジック
  x
  x
}

def judeg_time() {
  #時間判定に関連するロジック
  x
  x
}

def judeg_token() {
  #暗号化判定に関連するロジック
  x
  x
}

judeg_arg()
judeg_time()
judeg_token()