2 に答える
最初のは、 で終わるファイルは UTF-8 でエンコードされているとAddCharset
サーバーに伝えます。.html
Content-Type
2 番目は、MIME タイプと文字セットの両方を含む、HTML ファイルの完全な情報を提供します。.html
Apache はファイルを として提供するようにすでに設定されているはずなので、これは必要ありませんtext/html
。
3 番目の はAddDefaultCharset
、HTML だけでなく、すべてのファイル タイプのデフォルトの文字セットを設定します。したがって、たとえば、テキスト ドキュメント、XML ドキュメント、スタイルシートなどは、UTF-8
文字セットがリストされた状態で提供されます。これは私が推奨するものです。とにかく、デフォルトですべてのドキュメントを UTF-8 で保存する必要があります。したがって、すべてのドキュメントが現在 HTML であっても、後でそれらを追加した場合に、他のタイプのファイル用に構成された正しい文字セットが維持されます。
最後は Apache 構成ではありません。上記のオプションのいずれかを設定した場合、ドキュメントと一緒に送信されるのは実際のヘッダーです。Firefox の Firebug や、他のブラウザが提供するさまざまな開発者ツールで送信されたヘッダーを確認できます。常にContent-Type:
ヘッダーが必要です。テキストが UTF-8 でエンコードされている場合は、常に を指定する必要がありますcharset=UTF-8
。
meta
ヘッダーを介して文字セットを適切に設定する場合、タグは必要ないことに注意してください。meta
Web サーバーなしでファイルをローカルで表示する場合は、タグがあると便利です。その場合、ヘッダーを設定するものがないため、ブラウザーはmeta
タグにフォールバックする必要があります。meta
しかし、この目的のために、より短くて単純なタグを使用できます: <meta charset=utf-8>
. この省略形は HTML5 で正式に導入されましたが、ブラウザは実際にはずっと前からサポートしており、最新のすべてのブラウザと互換性があり、IE 6 にまでさかのぼっても互換性があります。
もう 1 つの可能性は、書き換えエンジンです (この場合は、拡張子のない URL に一致します)。
RewriteEngine on
RewriteRule ^([^.]*)$ $1 [type=text/html]