RewriteRule проблема с русскими символами

woofer

Новичок
RewriteRule проблема с русскими символами

Создал правило:
RewriteRule ^([A-Ha-h0-9]{32}/)?(list)/(en|ru)/([A-Za-zА-Я]+)/?(#.*)?$ $2.php?lg=$3&a=$4 [L]
для преобразования строки вида /list.php?lg=en&a=F в строку вида: /list/en/F/
В случае с английскими символами все работает нормально, проблемы появляются при наличии русских символов в строке. Например, если строка такого вида: /list/ru/Б/, то выводится ошибка: The requested URL /list/ru/Р‘/ was not found on this server.
Как я понимаю, это из-за преобразования строки запроса в UTF-8 со стороны Apache.
Как можно разрешить проблему с русскими символами в запросе?

Заранее спасибо за помощь! :)
 

woofer

Новичок
Правило вида:
RewriteRule ^([A-Ha-h0-9]{32}/)?(list)/(en|ru)/([A-Za-zx09-xFF]+)/?(#.*)?$ $2.php?lg=$3&a=$4 [L]
также не помогает...
 

SiMM

Новичок
> Как я понимаю, это из-за преобразования строки запроса в UTF-8 со стороны Apache.
А с чего вы решили, что Апач имеет к этому хоть какое-то отношение?
http://phpfaq.ru/na_tanke#headers
http://ru.wikipedia.org/wiki/CP1251 (в которой вы скорее всего и набивали свой .htaccess)
+ читать про квадратные скобки в [m]reference.pcre.pattern.syntax[/m]
 

woofer

Новичок
В том случае, если я ссылку кодирую urlencode(), то все работает ок, но вот только русские символы в виде "%XX"...
 

vadim

Guest
И вообще, это не очень хороший стиль передовать русские буквы в качестве параметров и их значений GET запроса
 
Сверху