Этот вопрос конкретно касается кодировки, которую Apache (2.2 в моем случае) использует при обслуживании внутренних страниц по умолчанию. Например, mod_autoindex списки каталогов, не найдены ErrorDocument страницы, страницы 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 по умолчанию.
Да, это возможно. Вы можете сделать это с помощью комбинации ErrorDocument
, <Location>
и ForceType
, следующим образом:
ErrorDocument 404 /404.html
<Location /404.html>
ForceType "text/html; charset=utf-8"
</Location>