Модуль Apache mod_charset_lite
| Описание: | Задание преобразования или перекодирования набора символов |
|---|---|
| Статус: | Расширение |
| Идентификатор модуля: | charset_lite_module |
| Исходный файл: | mod_charset_lite.c |
Краткое описание
mod_charset_lite позволяет серверу изменять набор символов ответов перед их отправкой клиенту. В среде EBCDIC Apache всегда преобразует содержимое протокола HTTP (например, заголовки ответа) из кодовой страницы локали процесса Apache в ISO-8859-1, но не тело ответов. В любой среде mod_charset_lite можно использовать, чтобы указать, что тела ответов следует преобразовывать. Например, если файлы хранятся в EBCDIC, то mod_charset_lite может преобразовать их в ISO-8859-1 перед отправкой клиенту.
Этот модуль предоставляет небольшое подмножество механизмов настройки, реализованных Russian Apache и связанным с ним mod_charset.
Распространённые проблемы
Недопустимые имена наборов символов
Параметры имён наборов символов в CharsetSourceEnc и CharsetDefault должны поддерживаться механизмом преобразования, используемым APR в системе, где развёрнут mod_charset_lite. Имена наборов символов не стандартизированы и обычно отличаются от соответствующих значений, используемых в заголовках HTTP. В настоящее время APR может использовать только iconv(3), поэтому имена наборов символов можно легко проверить с помощью программы iconv(1) следующим образом:
iconv -f charsetsourceenc-value -t charsetdefault-value
Несоответствие набора символов содержимого правилам преобразования
Если правила преобразования не подходят для содержимого, преобразование может завершиться сбоем различными способами, в том числе:
- Механизм преобразования может вернуть код ошибки, и соединение будет прервано.
- Если механизм преобразования не может преобразовать входной буфер, он может незаметно поместить в выходной буфер специальные символы (например, знаки вопроса).
Директива CharsetDefault
| Описание: | Набор символов, в который следует преобразовать данные |
|---|---|
| Синтаксис: | CharsetDefault charset |
| Контекст: | конфигурация сервера, виртуальный хост, каталог, .htaccess |
| Переопределение: | FileInfo |
| Статус: | Расширение |
| Модуль: | mod_charset_lite |
Директива CharsetDefault задаёт набор символов, в который следует преобразовывать содержимое соответствующего контейнера.
Значение аргумента charset должно распознаваться средствами поддержки наборов символов в APR как допустимое имя набора символов. Как правило, это означает, что он должен поддерживаться iconv.
Пример
<Directory "/export/home/trawick/apacheinst/htdocs/convert">
CharsetSourceEnc UTF-16BE
CharsetDefault ISO-8859-1
</Directory> CharsetSourceEnc и CharsetDefault отключает преобразование. Набор символов не обязан совпадать с набором символов ответа, но должен быть допустимым набором символов в системе. Директива CharsetOptions
| Описание: | Настройка поведения при преобразовании наборов символов |
|---|---|
| Синтаксис: | CharsetOptions option [option] ... |
| Значение по умолчанию: | CharsetOptions ImplicitAdd |
| Контекст: | конфигурация сервера, виртуальный хост, каталог, .htaccess |
| Переопределение: | FileInfo |
| Статус: | Расширение |
| Модуль: | mod_charset_lite |
Директива CharsetOptions настраивает некоторые параметры поведения mod_charset_lite. Значением Option может быть один из следующих вариантов:
ImplicitAdd | NoImplicitAdd- Ключевое слово
ImplicitAddуказывает, чтоmod_charset_liteдолжен автоматически добавлять свой фильтр, если в конфигурации задано преобразование набора символов содержимого. Если цепочка фильтров явно настроена с помощью директивыAddOutputFilter, следует указатьNoImplicitAdd, чтобыmod_charset_liteне добавлял свой фильтр. TranslateAllMimeTypes | NoTranslateAllMimeTypes- Обычно
mod_charset_liteвыполняет преобразование только для небольшого подмножества возможных типов MIME. Если для заданного раздела конфигурации указано ключевое словоTranslateAllMimeTypes, преобразование выполняется независимо от типа MIME.
Директива CharsetSourceEnc
| Описание: | Исходный набор символов файлов |
|---|---|
| Синтаксис: | CharsetSourceEnc charset |
| Контекст: | конфигурация сервера, виртуальный хост, каталог, .htaccess |
| Переопределение: | FileInfo |
| Статус: | Расширение |
| Модуль: | mod_charset_lite |
Директива CharsetSourceEnc задаёт исходный набор символов файлов в соответствующем контейнере.
Значение аргумента charset должно распознаваться средствами поддержки наборов символов в APR как допустимое имя набора символов. Как правило, это означает, что он должен поддерживаться iconv.
Пример
<Directory "/export/home/trawick/apacheinst/htdocs/convert">
CharsetSourceEnc UTF-16BE
CharsetDefault ISO-8859-1
</Directory> Имена наборов символов в этом примере работают с поддержкой преобразования iconv в Solaris 8.
CharsetSourceEnc и CharsetDefault отключает преобразование. Набор символов не обязан совпадать с набором символов ответа, но должен быть допустимым набором символов в системе.
© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/mod/mod_charset_lite.html