web-dev-qa-db-ja.com

NGINXで正しい文字セットHTTPヘッダーを有効にする方法

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

ありがとうございました。

40
pvorb

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

これで、すべてが正常に見えます。

41

UTF-8が必要な「charset_types」ディレクティブを設定しないと、文字セットの設定が機能しない場合があります。

例:「charset utf-8;」を設定すると、すべてのHTMLは反映されますが、JSONファイルは反映されません。これは、デフォルトで「charset_types」に設定されていないためです。

http://nginx.org/en/docs/http/ngx_http_charset_module.html#charset_types

22
Shun wee

charset_types設定を調整して、charset設定を設定するMIMEタイプを含める必要がある場合もあります(たとえば、text/calendarはデフォルトでは含まれていません)。

価値があるので、text/*はデフォルトで処理する必要があると思いますが、ここでは使用できません(Apache IIRCと同様)。

http://nginx.org/en/docs/http/ngx_http_charset_module.html#charset_types を参照してください

5
blueyed
    charset utf-8;
    source_charset utf-8;

必要なものです。両方持っていないとうまくいきません。

3
Leroy Scandal