Начиная с версии PL18 (которая сейчас проходит бета-тестирование), директивы конфигурационных файлах (и общая идея) сильно изменились. Поэтому описание синтаксиса директив для версий PL18 и старше вынесено в отдельный документ.
CharsetTable Oficial_Name Table1 [Table2] Language
CharsetTable iso_8859-5:1988 conf/koi-iso.tab ru CharsetTable ibm866 conf/koi-alt.tab ru CharsetTable windows-1251 conf/koi-win.tab ru CharsetTable koi8-r conf/koi-koi.tab ru
CharsetAlias Oficial_Name Alias1 Alias2 Alias3 ...
CharsetAlias iso_8859-5:1988 iso-ir-144 iso_8859-5 cyrillic iso-8859-5 CharsetAlias iso_8859-5:1988 iso8859-5 iso-8859.5 iso8859.5 iso CharsetAlias ibm866 csibm866 866 cp866 x-cp866 x-ibm866 cp-866 alt CharsetAlias windows-1251 win x-cp1251 cp1251 cp-1251
CharsetPriority Charset1 Charset2 Charset3 ...
NativeCharset Charset_Name
NativeCharset koi8-r NativeCharset windows-1251
Внимание! Почему-то многие ошибочно считают, что директива NativeCharset описывает кодировку, в которой сервер хранит документы на диске. Это не так. NativeCharset описывает (всего-лишь) кодировку, в которой документ будет показан клиенту в том случае, когда все другие способы определения кодировки клиента (заголовок Accept:, URI Prefix, User-Agent) не сработают. Для того, чтобы поменять "кодировку на диске" необходимо переопределить описания Charset. Это можно сделать для сервера в целом или для отдельного виртуального сервера.
AgentCharset Charset_Name Pattern1 Pattern2 Pattern3 ...
AgentCharset windows-1251 AIR_Mosaic IWENG/1 MSIE WinMosaic (Windows (WinNT; AgentCharset windows-1251 (Win16; (Win95; (16-bit) AgentCharset koi8-r Arena Ariadna Macintosh OmniWeb Sextant PRD (X11 AgentCharset ibm866 DosLynx
Content-type: text/html; charset=koi8-r; level=3Чтобы сервер не выдавал таким клиентским программам charset=... служит эта директива. Синтаксис:
BadAgent Pattern1 Pattern2 Pattern3 ...
Как справедливо заметил Andrey Chernov, указывать в этой директиве только название броузера, не указывая конкретной версии - значит нарываться на неприятности в будущем. К сожалению, до версии PL14 включительно, вместе с Apache-RUS распространялся "дистрибутивный" конфигурационный файл, в котором было сделано именно так (в BadAgent указаны lynx и MSIE). Начиная с версии PL15 это упущение исправлено. Правильная (на день написания этого текста - 21 апреля 1997 года) строка выглядит так:
BadAgent arena Lynx/2.0 Lynx/2.1 Lynx/2.2 Lynx/2.3 Lynx/2.4 "MSIE 2.0;"
NotSoBad pattern1 pattern2Все Pattern являются подстроками, а не regexp выражениями. Обычное использование - для отделения конкретных версий программы от всех разновидностей программы:
BadAgent lynx NotSoBad Lynx/2.7 Lynx/2.6 Lynx/2.5FMВсе версии lynx, кроме 2.5FM, 2.6 и 2.7 будут считаться "BadAgent".
RejectErrorCharset On/OffПри установке этого параметра в On сервер не будет выдавать документ в native charset, а будет сообщать клиенту об ошибке в запросе. При установке в Off - в любом случае выдаст документ как сможет. Значение по-умолчанию Off.
NoHostnameCharset On/OffЗначение по-умолчанию Off.
http://www.company.com/win/name.htmlследует выдавать в кодировке windows-1251. Использование директивы:
NoUriCharset Onзаставит сервер выдать этот документ в native code page.
CharsetAgentPriority On/OffПри установке этого параметра в On сервер в первую очередь будет смотреть на поле User-Agent. И если в этом поле он найдет известный ему шаблон, то примет решение о сконфигурированном charset согласно директивам AgentCharset. Если же шаблон не будет найден - сервер попытается найти имя charset в префиксе имени виртуального сервера, к которому обращен запрос и/или в префиксе затребованного URI.
"Russian Apache" includes software developed
by the Apache Group for use in the Apache HTTP server project
(http://www.apache.org/) See
Apache LICENSE. Copyright (C) 1995-2001 The Apache Group. All rights reserved. Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2001 Alex Tutubalin. Design (C) 1998 Max Smolev. |