NGINXで正しい文字セットヘッダーを有効にする正しい方法は何ですか?
Google Page Speedでウェブサイトを分析しています。 これは、HTTPヘッダーでHTMLファイルの文字セットを指定する必要があることを示しています。 これを行う正しい方法は何ですか?
NGINX構成ファイルのcharset utf-8;
宣言でserver {}
を設定しようとしましたが、何の効果もありません。
私のサーバーは次のヘッダーで応答します:
Connection: keep-alive
Date: Fri, 16 Sep 2011 12:43:24 GMT
Last-Modified: Fri, 02 Sep 2011 15:13:17 GMT
Server: nginx/0.7.67
ありがとうございました。
charset utf-8;
を追加するだけで、ほぼすべての作業を行うことができます。設定ファイルを変更した後、nginxをリロードすることを忘れていないか?
curl -I http://vorb.de/は、現時点では次の結果を返します。
HTTP/1.1 200 OK
Server: nginx/0.7.67
Date: Fri, 16 Sep 2011 13:20:03 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 1705
Last-Modified: Fri, 02 Sep 2011 15:13:17 GMT
Connection: keep-alive
Vary: Accept-Encoding
Accept-Ranges: bytes
これで、すべてが正常に見えます。
UTF-8が必要な「charset_types」ディレクティブを設定しないと、文字セットの設定が機能しない場合があります。
例:「charset utf-8;」を設定すると、すべてのHTMLは反映されますが、JSONファイルは反映されません。これは、デフォルトで「charset_types」に設定されていないためです。
http://nginx.org/en/docs/http/ngx_http_charset_module.html#charset_types
charset_types
設定を調整して、charset設定を設定するMIMEタイプを含める必要がある場合もあります(たとえば、text/calendarはデフォルトでは含まれていません)。
価値があるので、text/*
はデフォルトで処理する必要があると思いますが、ここでは使用できません(Apache IIRCと同様)。
http://nginx.org/en/docs/http/ngx_http_charset_module.html#charset_types を参照してください
charset utf-8;
source_charset utf-8;
必要なものです。両方持っていないとうまくいきません。