这个问题专门针对 Apache(我的情况是 2.2)在提供其默认内部页面时使用的字符集。例如,mod_autoindex目录列表,未找到錯誤文檔页面、500-内部错误页面等等。
Apache 目前为这些内置页面使用的字符集是 iso-8859-1(见截图)。
以下是我的相关 Apache 设置:
# apache2.conf:
AddDefaultCharset utf-8
我的操作系统是 Debian 7,我使用的是其默认的 prefork 二进制文件。我当时想这些页面上的字符集可能无法更改。或者也许有一个编译时选项会影响默认字符集?
在我的(Debian 特定的)/etc/apache2/envvars 中,我获取了我的默认语言环境:
$ cat /etc/apache2/envvars
. /etc/default/locale
$ cat /etc/default/locale
LANG="en_US.UTF-8
$ env | grep LANG
LANG=en_US.UTF-8
使用以下方式修改 Content-Type 标头mod_headers对 Apache 的默认内部页面没有影响。
答案1
ErrorDocument
是的,这是可能的。您可以使用和的组合来实现这一点<Location>
,ForceType
如下所示:
ErrorDocument 404 /404.html
<Location /404.html>
ForceType "text/html; charset=utf-8"
</Location>