![是否可以使用字符集 utf-8 来提供 Apache 的默认内部页面?](https://linux22.com/image/615144/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E5%AD%97%E7%AC%A6%E9%9B%86%20utf-8%20%E6%9D%A5%E6%8F%90%E4%BE%9B%20Apache%20%E7%9A%84%E9%BB%98%E8%AE%A4%E5%86%85%E9%83%A8%E9%A1%B5%E9%9D%A2%EF%BC%9F.png)
这个问题专门针对 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>