Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [apache-rus] Apache-rus changes



Всех с Наступающим(и), удачи и благ.

On Mon, 22 Dec 1997, Alex Tutubalin wrote:

> Для всеобщего обсуждения.
> 
Восстанавливаю исходную задачу к Деду Морозу. ;)
1. хочется (возможно, сдуру) построить 2-язычный сайт,
   в котором есть документы (и cgi, и проч. динамика) как на русском,
   так и на английском, да еще и из-под одного и того же демона.
   (Конечно, можно держать 2х и больше апачей - "родного" и русского, но
   неохота).
2. Хочется сделать это более красиво (это точно сдуру ;),
   а именно сопровождать в http-заголовках русские документы, как уже 
   умеет apache-rus,
   а английские - указанием charset: ISO-8859-1 (или вообще ничего не 
   сообщать
   про charset, оставляя его на умолчание смотрелки).
   Кстати, полно сайтов, пользующих русский апач, которые
   не указывают charset даже на русские документы -
   это есть грабли, описанные у Чернова
      http://www.nagual.pp.ru/~ache/koi8.html)
   и относятся эти грабли __не_только_ к koi8-r.

3. Все это приблизительно решается даже в рамках тех рычагов конфига,
   которые уже есть, за исключением, как минимум, случая с
   Netscape Communicator 4. (все версии, все платформы) 
   Этот гад всегда в запросе говорит Accept-Charset,
   причем его параметры не регулируются менюшками,
   а отхачить настройки лично своей копии браузера - не оно. ;-)
   Надо сказать, (для тех, кто не знает) что
   Communicator 4.x для платформ от Microsoft
   понимает koi8-r наряду с windows-1251, обходясь без специально хаченных
   фонтов под koi8, в отличие от Communicator 4.x для X11, который
   не умеет внутри себя сделать recode -wk для документов в windows-1251.
   ;)

4. Так вот - вариантов ровно 2. ;)
   1) Можно решить, что сайт на 2х языках, да еще и соблюдающий стандарты
      - блажь, и не стоит возни.
   2) Попытаться добавить новую функциональность, не отменяя сделанного,
      для обхода криво написаного, но повсеместно распространенного,
      Communicator 4.
   3) вариант последний - убить все маргинальные платформы нафиг, оставить
      единственную русскую кодировку windows-1251 навсегда, у всех,
      и политически запретить использовать все, что изготовлено
      не на фирме Microsoft,
      :)))))

>  vr> Все это хочется без специальных приседаний иметь в конфиге наряду с
>  vr> koi8-r, Windows-1251, и т.п.
>  vr> Засада с теми броузерами, которых трудно отучить _всегда_ в запросе http
>  vr> ставить
>  vr> "Accept-Charset... ISO-8859-1,....",
>  vr> типа Navigator 4.x.
> Параметр вида
> CharsetIgnoreBrokenAccept "Mozilla/4.0" "iso-8859-1,*,utf-8"
> спасет умирающего кота ? Имеется в виду, что описывается явно пара 
> User-Agent/Accept-Charset и при совпадении обоих значений AcceptCharset будет 
> проигнорирован.

На первый взгляд, именно это и спасет.
Однако, такое поведение должно быть как-то согласовано с
CharsetPriority и CharsetSelectionOrder, и может, еще какими...
...хотя, если сначала проигнорировать, а после напустить всю логику
перебора кодировки, включая CharsetAgent, то все будет правильно.
Однако учетывать исключения - тоже не дело, IMHO.

[...]
> Это тоже, по мотивам нашего того еще (какого не помню :) разговора попало в 
> ToDo.
    (который, потерялся? ... я бы сейчас не возникал... ;)

> Имеется в виду директива вида
> CharsetDisable koi8-r windows-1251 ....
> Т.е. Charset'ы из списка Disable не будут приниматься во внимание для данного
> .htaccess/<Location> и так далее.

Черт знает...
попытаюсь более точно сформулировать:
IMHO, у русских текстов (ru, не en), __не_может_быть_
кодировки ISO-8859-1 по определению ;-)
Поэтому как-то странно привязывать к месту на диске.
Другой вопрос, что .htaccess/<Location> - один из вариантов сказать,
что в этом месте живут только русские доки.
Более точно было бы конфигом не запрещать, а объявлять
списки -
CharsetLangCharset ru koi8-r windows-1251 ibm866 ....
CharsetLangCharset en ISO-8859-1
но тогда возникает та самая проблема чехов, которых
Билл наградил еще круче, и еще пара граблей... ;-)

> Имеется в виду такой извращенный механизм:
> Директивы CharsetDecl/CharsetRecodeTable в настоящее время можно писать только
> для сервера в целом. По той причине, что написание в <Directory> и так далее 
> будет вызывать чтение таблиц по каждому обращению, что неприемлемо.
> 
> (Предлагаемый) Механизм CharsetDisable позволит объявить все используемые 
> charsets в основном конфиге, а потом запретить русские Charsets для одной части 
> сервера и нерусские для другой.
IMHO, все же не запретить, а сказать, что здесь - вот эти кодировки
допустимы, а там - по другому списку.

>  vr> все же и в конфиге описывать, и различать, и сообщать броузеру.
>  vr> Я так понимаю, что самое сложное - отличить русские документы от
>  vr> нерусских, польских, и т.п. ;-)
> Ничего сложного. На это есть AddLanguage. Т.е. совсем strict механизм может 
> предлагать вообще не обрабатывать автовыбор charset если язык документа не 
> совпадает с языком language. Правда, на мой взгляд, это слишком жестокое 
> решение и народ меня не поймет. Хотя твою конкретную проблему это бы решило.

Вот. Как скажет народ?
IMHO, это был бы наиболее четкий вариант, если учесть все детали, и не
факт, что с конфигами
в этом случае будет больше возни. Особенно тем, кому достаточно
одного языка на всем сайте - новые директивы им просто будут
по-барабану...

> С уважением,Alex Tutubalin

Удачи,

Sergey Vovk,	| http://www.macomnet.ru/~vsv/
sysadmin	| voice: +7(095)973-4002, 973-4003







Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"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.