Кириллические URL

Настройка серверного ПО и т.д.

Модераторы: dobs, bj

Ответить
Сообщение
Автор
Gyricon
Сообщения: 2
Зарегистрирован: Чт янв 31, 2013 08:28

Кириллические URL

#1 Сообщение Gyricon » Чт янв 31, 2013 09:12

Доброе время суток.

Есть сильное желание скачивать со своего сайта файлы с кириллическими именами, например, http://gyricon.ho.ua/аудиотека/Голубой вагон («БДХ», Серёжа Парамонов, 1979) [1 куплет].mp3. При попытки скачать получаю страницу 404, мол, "Запрошенная страница http://gyricon.ho.ua/КРАКОЗЯБЛЫ.mp3 не найдена на этом сервере". Пробовал управлять "\htdocs\.htaccess" [AddDefaultCharset windows-1251|koi8-r|utf-8 и CharsetSourceEnc windows-1251|koi8-r|utf-8], соответственно менял и кодировки заливаемой index.htm и менял метатег <meta http-equiv="Content-Type" content="text/html; charset=windows-1251|koi8-r|utf-8"> в ней — кракозяблы оставались.

Единственное, что хоть как-то помогло, так это установка в "\htdocs\.htaccess" (кодировка моих cтраниц на тот момент была windows-1251) серии подмен почти всех литер афавита способом вида
RewriteEngine on
RewriteRule ^(.*)Р°(.*)$ /$1а$2
RewriteRule ^(.*)Р±(.*)$ /$1б$2
RewriteRule ^(.*)РІ(.*)$ /$1в$2
RewriteRule ^(.*)Рі(.*)$ /$1г$2
RewriteRule ^(.*)Рґ(.*)$ /$1д$2

RewriteRule ^(.*)Р­(.*)$ /$1Э$2
RewriteRule ^(.*)Р®(.*)$ /$1Ю$2
RewriteRule ^(.*)РЇ(.*)$ /$1Я$2


Но и тут не обошлось без косяков. Эксперементально выяснил, что не подменяется как нужно две буквы:
RewriteRule ^(.*)Р?(.*)$ /$1И$2
RewriteRule ^(.*)Р (.*)$ /$1Р$2


Перечитал в интернете кучу материалов, эксперементировал, но так и не осилил. Подскажите, пожалуйста, как сделать по-нормальному (где-то как-то просто указать кодировки или поменять эти кодировки, а не извращения с заменой букв), желательно без PHP — т. е. универсальное решение для статических сайтов. Ну и вариант с PHP можно, конечно.

Мои параметры: Windows XP SP3, Firefox 3.6, Akelpad 2.1.7. Параметры хостера: http://s1.ho.ua/versions.html#main

Спасибо.
Последний раз редактировалось Gyricon Чт янв 31, 2013 13:26, всего редактировалось 2 раза.

Gyricon
Сообщения: 2
Зарегистрирован: Чт янв 31, 2013 08:28

Re: Кириллические URL

#2 Сообщение Gyricon » Чт янв 31, 2013 13:16

В общем, пока нашёл решение такое:

1. Файлы заливаются через панель управления без всяких изменений (из Windows XP SP3) — и кириллица, и пробелы.
2. Все страницы у меня в кодировке Windows-1251 с метатегом <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">, файл настройки \htdocs\.htaccess содерижит директивы AddDefaultCharset windows-1251 и CharsetSourceEnc windows-1251.
3. Решение! В самих страницах ссылки должны быть вида:
<a href="http://gyricon.ho.ua/audioteka1/%D1%EE% ... 8%E0%ED%E0 (%CE%EA%F1%E0%ED%E0 %CD%E5%F7%E8%F2%E0%E9%EB%EE) - %D1%E5%F0%E4%F6%E5-%EC%E0%E3%ED%E8%F2 %5B%E2%F1%F2%F3%EF%EB%E5%ED%E8%E5%5D.mp3">Согдиана (Оксана Нечитайло) - Сердце-магнит [вступление].mp3</a>

4. В браузере Firefox 3.6 при поднесении мышки к ссылке высвечивается нормальное http://gyricon.ho.ua/audioteka1/Согдиана (Оксана Нечитайло) - Сердце-магнит [вступление].mp3 в строке статуса. Клацаем — закачивается файл с приятным именем Согдиана (Оксана Нечитайло) - Сердце-магнит [вступление].mp3.

Из наблюдаемых проблем пока следующая: при копировании ссылки со страницы (и вставки, например, в другую закладку браузера для прямой закачки), она копируется в виде http://gyricon.ho.ua/audioteka1/%D1%EE% ... %E5%5D.mp3 и файл хоть и качается, но сохраняется на диск с именем %D1%EE%E3%E4%E8%E0%ED%E0%20(%CE%EA%F1%E0%ED%E0%20%CD%E5%F7%E8%F2%E0%E9%EB%EE)%20-%20%D1%E5%F0%E4%F6%E5-%EC%E0%E3%ED%E8%F2%20%5B%E2%F1%F2%F3%EF%EB%E5%ED%E8%E5%5D.mp3

Идея понятна, я пока доволен, но всё же тема остаётся открытой — как обойтись чисто серверными настройками, не трогая особо сами страницы. Может быть именно у данного хостера на текущем егошном серверном софте такое невозможно?

Спасибо.

dobs
HO Moderators
Сообщения: 2504
Зарегистрирован: Вс апр 09, 2006 14:42
Откуда: /home/Ukraine/Kyiv
Контактная информация:

Re: Кириллические URL

#3 Сообщение dobs » Чт янв 31, 2013 18:47

Надо чтоб сама кодировка файла обработчика была в utf-8 а не только заголовки...

Ответить