MIMEタイプと文字コードを指定する

今回は .htaccess でMIMEタイプ(メディアタイプ)と文字コードを指定する方法について記述させていただきます。

MIMEタイプとは、その文書データの種類を指定するもので、HTMLでは、"Content-type" として指定される text/html 等のことです。

.htaccess への記述

  • AddType "text/html;charset=utf-8" .html

上記の記述は、拡張子 .html のファイルのMIMEタイプを text/html に、文字コードを UTF-8 に指定するものです。

で、以下の記述はXHTML用です。XHTMLで推奨されているMIMEタイプは、application/xhtml+xml で、この application/xhtml+xml では、メタタグの http-equiv 属性の使用が推奨されていないので、HTTPレスポンスヘッダでの指定が必須となります。(IEでは対応していない場合があります。)

  • AddType "application/xhtml+xml;charset=utf-8" .html

追記 : 2011年04月05日
上記の拡張子の部分にドット(.)は無くても適用されますが、html という文字列をファイル名に含んだ画像などがある場合は、ドットは付けた方がいいです。(Chromeでのみ、その画像が読み込まれなかったのを確認(v10.0.648.204))

後書き

HTML文書では、MIMEタイプと文字コードは<meta> タグで指定できるので、.htaccess で指定する必要性はあまり感じないものですが、XHTMLで MIMEタイプを application/xhtml+xml にして作成していると必要になります。(読めればいいという場合は別ですが。)

私も以前は、MIMEタイプを application/xhtml+xml にして作成していました。

で、この記述を使用することになったきっかけは、Another HTML-lint でチェックしたことです。(ソースではなく、WEB上のURLで)

すると、「HTTPレスポンスヘッダに指定されているメディアタイプは text/html ですが、<meta> に指定されているのは application/xhtml+xml です。」というエラーが出てしまいました。(その頃は、XHTMLについて何の知識もなかったのでMIMEタイプを <meta> で指定していました。)

ということで、.htaccess でMIMEタイプと文字コードを修正したらエラーは出なかったんですが、IEで閲覧してみると、各所でいわれている通り、ページ自体にダウンロードしますかみたいなことが出た(デフォルトページだけですが)ので、application/xhtml+xml 自体やめました。

なので、現在は text/html にしています。

サイト内関連ページ : PageSpeed を参考に Web ページの表示速度向上のためにやってみたことのまとめ

スポンサードリンク

inserted by FC2 system