ngx_http_charset_module モジュール

設定例
ディレクティブ
     charset
     charset_map
     charset_types
     override_charset
     source_charset

ngx_http_charset_module モジュールは、応答の"Content-Type"ヘッダフィールドに指定した文字セットを追加します。更にモジュールはいくらかの制限はありますが、ある文字セットから他のものへデータを変換することができます:

設定例

include        conf/koi-win;

charset        windows-1251;
source_charset koi8-r;

ディレクティブ

構文: charset charset | off;
デフォルト:
charset off;
コンテキスト: http, server, location, if in location

指定された文字セットを"Content-Type"応答ヘッダフィールドに追加します。この文字セットがsource_charset ディレクティブで指定された文字セットと違う場合は、変換が実行されます。

パラメータoff は"Content-Type"応答ヘッダフィールドへの追加をキャンセルします。

文字セットは変数を使って定義することができます:

charset $charset;

そのような場合には、変数の全ての可能性のある値が設定の中にcharset_map, charsetまたは source_charset ディレクティブの形で少なくとも一回は存在する必要があります。utf-8, windows-1251koi8-r 文字セットについては、設定の中に conf/koi-win, conf/koi-utfconf/win-utfのファイルを含めるだけで十分です。その他の文字セットについては、単純に架空の変換テーブルが動くようにします。例えば:

charset_map iso-8859-5 _ { }

更に、文字セットを"X-Accel-Charset"応答ヘッダフィールドに設定することができます。proxy_ignore_headers, fastcgi_ignore_headers, uwsgi_ignore_headers, scgi_ignore_headersgrpc_ignore_headers ディレクティブを使って、この機能を無効にすることができます。

構文: charset_map charset1 charset2 { ... }
デフォルト: -
コンテキスト: http

ある文字セットから他のものへの変換テーブルを描写します。逆変換のテーブルは同じデータを使って作成されます。文字コードは16進数で指定されます。80-FFの領域の見つからない文字は"?"で置き換えられます。UTF-8から変換する時は、1バイトの文字セットに文字が無い時には"&#XXXX;"で置き換えられます。

例:

charset_map koi8-r windows-1251 {
    C0 FE ; # small yu
    C1 E0 ; # small a
    C2 E1 ; # small b
    C3 F6 ; # small ts
    ...
}

UTF-8への変換テーブルを描画する時には、UTF-8文字セットのためのコードが二つ目のカラムに指定されなければなりません。例えば:

charset_map koi8-r utf-8 {
    C0 D18E ; # small yu
    C1 D0B0 ; # small a
    C2 D0B1 ; # small b
    C3 D186 ; # small ts
    ...
}

koi8-rから windows-1251へと、koi8-rwindows-1251から utf-8 への完全な変換テーブルは、配布物のファイルのconf/koi-win, conf/koi-utfconf/win-utfで提供されます。

構文: charset_types mime-type ...;
デフォルト:
charset_types text/html text/xml text/plain text/vnd.wap.wml
application/javascript application/rss+xml;
コンテキスト: http, server, location

このディレクティブはバージョン0.7.9から導入されました。

応答の中で"text/html"に加えて指定されたMIMEタイプでモジュールが処理することができます。特別な値"*"は全てのMIMEタイプに一致します(0.8.29)。

バージョン 1.5.4までは、"application/x-javascript"が"application/javascript"の代わりにデフォルトのMIMEタイプとして使われていました。

構文: override_charset on | off;
デフォルト:
override_charset off;
コンテキスト: http, server, location, if in location

プロキシされたあるいはFastCGI/uwsgi/SCGI/gRPCサーバから受け取った応答が"Content-Type"応答フィールドに既に文字セットを含んでいる場合に、変換を行うべきかどうかを決定します。変換が有効な時には、受け取った応答で指定さえた文字セットをソースの文字セットとして扱います。

もしサブリクエストで応答を受け取った場合には、override_charset ディレクティブの設定に関係なく、応答の文字セットからメインのリクエストの文字セットへの変換が常に行われることに注意してください。

構文: source_charset charset;
デフォルト: -
コンテキスト: http, server, location, if in location

応答のソースの文字セットを定義します。もし文字セットがcharset ディレクティブで指定されたものと異なる場合には、変換が行われます。

TOP
inserted by FC2 system