On Wed, 15 Apr 1998, Alex Tutubalin wrote:
> Hi!
> alr> я для этого использую MultiViews. Однако,
> alr> наблюдается крайне неприятный побочный эффект -
> alr> если даже человек смотрит английскую версию сервера
> alr> в заголовках посылаемых от сервера присутсвуют указания
> alr> на кириллические кодировки.
> alr> Вы не можете обьяснить как этого избежать?
> В настоящее время - никак. Проблема многоязычных серверов обсуждалась в начале
> этого года... и лично я понял, что подводных камней слишком много, чтобы это
> хотелось имплементировать
:-)
Уточню - "никак" - имеется в виду "никак под MultiViews".
Поскольку я был главным бузотером в том выяснении, у меня наоборот,
сложилось полное понимание, как нужно сделать многоязычный апач. ;-)
Проблема в осознании факта, что нужно четко очертить понятия language
и список допустимых для него charset, после чего делать четкую привязку
деревьев или суффиксов (неважно, главное - документов) к _language_.
Привязку того или иного документа к language, конечно же, делает
webmaster/webadmin, а на автомате httpd должен
выдавать charset, из списка допустимых для данного документа.
Необходимо понять, что в нынешней версии apache-rus эти 2 понятия
настолько перепутаны,
что для случая _только_русский_сайт_ эта разница по-барабану.
Для реализации нужно переделать полностью, и возможно, даже потерять
совместимость с конфигами от нынешнего apache-rus. ;)
Сейчас, как workaround к нынешнему apche-rus, применяю простейшую схему:
1. две части сервера разнесены по разным деревьям, а именно:
/ru/ (он же /ru-win/, /ru-alt/, и т.п.)
/en/
2. соответственно, дерево /ru/ подчиняется стандартному поведению
apache-rus, я остановился на схеме автомата на браузер и/или
принудительного указания charset через URL только по первой
директории от корня или от user home page.
см. пример http://www.macomnet.net/ или http://www.macomnet.com,
обратите внимание, что симлинки селектора ссылаются не на
текущую директорию, а на соседнюю того же уровня,
а именно "ru-win -> ru", а не "win -> .", как рекомендовано
на apache.lexa.ru, и сделано это для _стройности_ и "во избежание" -
не буду пояснять подробности, подумайте сами, почему так. ;-)
Моя home page пока сделана по-старинке, потому что там очень мало
документов - ru-win -> .
3. Для дерева /en/ достаточно .htaccess:
CharsetTurnOff on
Или то же самое в конфигах.
> Т.е. сейчас это делается только разнесением на два дерева.
>
> Хотя, можно попробовать как-то так:
> <Files ~ ".*html.en$">
~~~~
> CharsetTurnOff On
> </FIles>
> но я не уверен, что это будет работать :)
Тогда же выяснили, что MultiViews _вообще_ не годится
на практике для многоязычных сайтов, если на сайте требуется не вполне
нормально поддержаный в браузерах русский язык (про другие
восточно-славянские вообще молчу ;-)
IMHO идея MultiViews - наиболее неудачная _идея_ apache,
оно годится для смеси испанского/немецкого/английского - они все
живут в ISO-8859-1 ;-) То есть делали это "дальтоники", которые
в упор не знают про другие варианты кодировок. :)
> С уважением,Alex Tutubalin
>
> --- GoldED 2.42.G1114+
>
>
Sergey Vovk, | http://www.macomnet.ru/~vsv/
sysadmin | voice: +7(095)973-4002, 973-4003
"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-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.