3
4

2 回答 2

2

第一个AddCharset, 告诉服务器以 UTF-8 结尾的文件.html应该说是用 UTF-8 编码的。

第二个给出了完整Content-Type的 HTML 文件,包括 MIME 类型和字符集。这应该不是必需的,因为 Apache 应该已经配置为将.html文件作为text/html.

第三个,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。

于 2012-11-13T21:57:25.917 回答
1

另一种可能性是重写引擎(在这种情况下,匹配无扩展 URL):

RewriteEngine on
RewriteRule ^([^.]*)$ $1 [type=text/html]
于 2014-04-16T17:03:00.767 回答