types {}

Igor Sysoev is at rambler-co.ru
Wed Apr 13 16:34:05 MSD 2005


On Wed, 13 Apr 2005, Alexey Mahotkin wrote:

>>> Подскажите пожалуйста, как можно для определенного location добавить
>>> описание mime type?
>>>
>>> location {
>>>    types {
>>>        x/x ext;
>>>    }
>>> }
>>>
>>> Такая конструкция похоже полностью заменяет типы, определенные выше. А
>>> мне нужно добавить к ним.
>>
>> Да, сейчас заменяет. А  имеет ли смысл добавлять mime types на уровне
>> server и location ?
>
> Выставление чарсета?  Например, я хочу, чтобы .html-файлы были в
> windows-1251,  а .xml -- в utf-8.

types определяет только mime-type без charset и прочая. Хотя
конструкция вида

types {
     'text/xml; charset=utf-8'   xml;
     ...
}

должна работать, но не проверял. Кодировку, на мой взгляд, лучше ставить так:

     location ~* \.xml$ {
         charset          on;
         default_charset  utf-8;
         ...
     }

     location ~* \.html$ {
         charset          on;
         default_charset  windows-1251;
         ...
     }

> А есть где-нибудь дока на модуль ngx_http_charset_filter.c?  Он
> работает как русский апач?

Нет, ngx_http_charset_filter_module перекодирует только от сервера
к клиенту. Кодировка клиента задаётся жёстко. Развитие в сторону
mod_charset не планируется (пора всем переходить на жёсткие кодировки).

Директивы:

charset          on|off;

source_charset   <name>;  # кодировка документа
default_charset  <name>;  # кодировка клиента

Если указана только одна директива source_charset или default_charset,
то перекодировка не делается, а только ставится Content-Type.

charset_map  <charset1> <charset2>  { ... }

задаёт таблицу однобайтной перекодировки, пример в conf/win-koi.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list