什么是htaccess相当于

时间:2012-11-13 21:11:56

标签: .htaccess utf-8

相当于meta http-equiv="Content-Type" content="text/html; charset=utf-8"的htacces是什么? Yslow说我应该把它放在我的htacces中。我在appache服务器上。

好的,我在这里看到了我的答案。哪个代码合适呢?我的网站上只有html扩展名。 http://www.askapache.com/htaccess/setting-charset-in-htaccess.html

AddCharset UTF-8 .html

VS

AddType 'text/html; charset=UTF-8' html

VS

AddDefaultCharset UTF-8

VS

Content-Type: text/html; charset=UTF-8

2 个答案:

答案 0 :(得分:2)

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

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

第三个AddDefaultCharset设置所有文件类型的默认字符集,而不仅仅是HTML。因此,例如,文本文档,XML文档,样式表等将与列出的UTF-8字符集一起提供。这是我建议的;默认情况下,您应该默认使用UTF-8保存所有文档,因此即使您的所有文档都是HTML,如果稍后添加它们,也会为其他类型的文件保留正确的字符集。

最后一个不是Apache配置;如果您设置了上述选项之一,它应该与您的文档一起发送的实际标题。您可以检查Firefox上Firebug中发送的标头,或其他浏览器提供的各种开发人员工具。您应始终拥有Content-Type:标头,如果您的文字采用UTF-8编码,则应始终指定charset=UTF-8

请注意,如果通过标头正确设置字符集,则不需要meta标记。如果要在没有Web服务器的情况下在本地查看文件,那么拥有meta标记仍然很好;在这种情况下,没有任何东西可以设置标题,因此浏览器需要回退meta标记。但为此,您可以使用更短更简单的meta标记:<meta charset=utf-8>。这种缩写形式在HTML5中正式引入,但浏览器实际上支持它的时间更长,并且它与所有现代浏览器兼容,甚至回到IE 6。

答案 1 :(得分:1)

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

RewriteEngine on
RewriteRule ^([^.]*)$ $1 [type=text/html]