Показать сообщение отдельно
Старый 20.08.2007, 12:11   #2
2Casp
Пользователь
 
Аватар для 2Casp
 
Пол:Мужской
Регистрация: 01.06.2007
Сообщений: 98
Репутация: 19
По умолчанию Ответ: Заместо русских букв знаки вопроса "?"

Проверь это:
Цитата:
Файл httpd.conf может содержать строки:
Код:
CharsetSourceEnc koi8-r
CharsetByExtension windows-1251 .txt
Такая запись означает, что все файлы хранятся на диске в кодировке koi8-r; исключение составляют текстовые файлы с расширением txt, для которых используется Windows-1251.

Если кодировок более одной и документы в каждой кодировке хранятся в своем каталоге, директивы CharsetSourceEnc помещаются в соответствующие секции <Location> либо в файлы .htaccsess внутри каталогов.

Вторую группу составляют директивы CharsetDecl, CharsetAlias CharsetRecodeTable и CharsetWideRecode Table, которые определяют названия кодировок, их синонимы и таблицы перекодирования. Все они размещаются в секции <IfModule mod_charset.c> - </IfModule> и в большинстве случаев не нуждаются в изменении.

В третью, самую многочисленную группу входят директивы, задающие порядок перекодирования символов от сервера клиенту и обратно.

Принято, чтобы при попадании на русскоязычный сервер пользователь получал страницу в "своей" кодировке, определяемой автоматически на основе той информации об операционной системе, которую передает серверу браузер: например, установив, что пользователь работает в Windows, сервер выдает ему страницу в кодировке Windows-1251, а установив, что он работает в Unix, выдает страницу в koi8. Если выбранная таким образом страница не подходит, клиент может сменить кодировку вручную. Основных схем выбора три: по префиксу каталога, по имени виртуального сервера и по номеру порта. У каждой из них есть свои преимущества и свои недостатки.
1) [Для просмотра ссылок требуется регистрация. Зарегистрироваться...]
[Для просмотра ссылок требуется регистрация. Зарегистрироваться...] - выбор кодировки по префиксу каталога,
2) [Для просмотра ссылок требуется регистрация. Зарегистрироваться...]
[Для просмотра ссылок требуется регистрация. Зарегистрироваться...] - выбор кодировки по имени сервера,
3) [Для просмотра ссылок требуется регистрация. Зарегистрироваться...]
[Для просмотра ссылок требуется регистрация. Зарегистрироваться...] - выбор кодировки по порту.

Для организации выбора кодировки по префиксу каталога нужно либо внести в секцию VirtualHost строку вида
Код:
Alias /koi /www/rmt
либо создать в соответствующем каталоге символическую ссылку на себя:
Код:
# cd /www/rmt
# ln -s . koi
Усилия, затрачиваемые на первоначальное конфигурирование, невелики, но для крупных серверов с разветвленной структурой такая схема не очень подходит: вряд ли удастся проконтролировать корректность ссылок на разные страницы узла с внешних серверов, да и за внутренними ссылками проследить не так-то просто (в большинстве случаев они должны быть относительными).

При выборе кодировки по имени сервера необходимо, чтобы информация о соответствующих именах была задана в настройках DNS-сервера, обслуживающего данный домен, а в файл httpd.conf в секцию VirtualHost вносятся строки:
Код:
<VirtualHost 193.124.134.3>
ServerName www.rmt.ru
ServerAlias *.www.rmt.ru
...
</VirtualHost>
Если в качестве имени поддомена выступает один из синонимов названия кодировки (CharsetAlias), то эта кодировка считается кодировкой клиента. При таком подходе ссылки внутри сервера могут быть любыми, и единственный недостаток данной схемы в том, что перекодирование не выполняется для браузеров, не указывающих в запросе имя сервера, - впрочем, их, как уже говорилось, осталось крайне мало. Если же совместимость со старыми браузерами категорически необходима, можно назначить каждому поддомену свой IP-адрес.

Чтобы применить выбор по номеру порта, необходимо в файле httpd.conf удалить директиву Port и снять комментарии со строк
Код:
Listen 80
Listen 8100
Listen 8101
Listen 8102
Listen 8103
CharsetByPort koi8-r 8100
CharsetByPort windows-1251 8101
CharsetByPort ibm866 8102
CharsetByPort iso-8859-5 8103
Схема выбора кодировки задается директивой CharsetSelectionOrder. Ее параметры определяют порядок применения правил выбора. Так, выбору по префиксу каталога соответствует строка
CharsetSelectionOrder Dirprefix Useragent Portnumber Hostname UriHostname

Выбору по имени домена - строка
CharsetSelectionOrder Hostname UriHostname Useragent Portnumber Dirprefix

Для выбора по номеру порта следует записать
CharsetSelectionOrder Portnumber Useragent Hostname UriHostname Dirprefix

__________________
Цена тебе - твое слово!
2Casp вне форума
 
Ответить с цитированием Вверх
 
Время генерации страницы 0.08380 секунды с 9 запросами