更改Apache索引的字符集响应头
我试图在本地apache服务器上设置更改自动生成的文件索引;我的一些文件和文件夹具有utf-8字符,如» 这应该不是问题,因为html头的字符集设置为更改Apache索引的字符集响应头,apache,utf-8,character-encoding,indexing,Apache,Utf 8,Character Encoding,Indexing,我试图在本地apache服务器上设置更改自动生成的文件索引;我的一些文件和文件夹具有utf-8字符,如» 这应该不是问题,因为html头的字符集设置为utf-8。php文件已在utf-8中编码。我甚至在Apache服务器的httpd.conf中将“AddDefaultCharset”设置为off,但是当我尝试加载任何页面时,我得到了“内容类型:text/html;响应标题中的charset=ISO-8859-1 是什么导致了这种情况,我如何阻止它?对于html 将以下内容放在标记之间: <
utf-8
。php文件已在utf-8
中编码。我甚至在Apache服务器的httpd.conf中将“AddDefaultCharset
”设置为off,但是当我尝试加载任何页面时,我得到了“内容类型:text/html;响应标题中的charset=ISO-8859-1
是什么导致了这种情况,我如何阻止它?对于html
将以下内容放在
标记之间:
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8"/>
用于xhtml将以下内容放在
标记之间:
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8"/>
以以下内容开始您的php文件:
<?php echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" ?>
结果表明,Apache有一个单独的设置来编码它生成的索引。您可以通过将此行添加到
.htaccess
文件来设置索引的字符集,该文件位于将生成索引的目录中:
IndexOptions Charset=UTF-8
这个给我修好了 当响应标题的内容类型为text/plain或text/html时使用在.htaccess或httpd.conf中,您可以添加:
AddDefaultCharset utf-8
AddCharset utf-8 .html .css .php .txt .js
是为任何给定的文件扩展名定义字符集
在.htaccess或httpd.conf中,您可以添加:
AddDefaultCharset utf-8
AddCharset utf-8 .html .css .php .txt .js
在PHP中(在输出任何页面内容之前):
这就是我在标题中所说的html,我已经为utf-8设置了meta标记。我认为这个问题与Apache服务器有关,因为在浏览器查看我的html或php之前,在响应头中设置了字符集。谢谢,这给了我解决这个问题所需的提示!将服务器从CentOS 6上的apache 2.2迁移到CentOS 7上的2.4时,我遇到了同样的问题。旧服务器在其httpd.conf
中有IndexOptions Charset=UTF-8
(我想是默认情况下吧?)。CentOs 7上的全新apache 2.4在conf.d/autoindex.conf
中缺少charset选项。修正了,我已经添加了它!