Консультация № 170551
18.07.2009, 16:40
0.00 руб.
0 0 0
Здравствуйте ув. эксперты.
Вопрос по поводу mod_rewrite и кириллические символы (дружить с которыми он очень не хочет).
Итак, сайт расположен пока под управлением "Денвер"`а и проблема с кодировками и utf-8 в частности. В обработке таких URL в РНР файле ничего сложного нет, а вот mod_rewrite в .htaccess дружить с кириллицей не хочет.
Например, я ввожу:
Код:
http://webforever.info/регистрация
.
При этом русское слово перекодировывается в utf-8 кодировку и попадает в .htaccess уже в виде крякозяблов.
ну т.е. правило:
Код:
RewriteRule ^(регистрация)/?$ index.php?cat=$1
не срабатывает - 404 еррор.

А вот правило:
Код:
RewriteRule ^(регистрация)/?$ index.php?cat=$1

работает замечательно. В PHP конечно URL тоже приходит в utf-8 кодироке, но преобразовать в win-1251 не проблема.
А вот как можно сделать, чтобы это преобразование выполнялось до передачи урла в .htaccess?
У меня везде исползуется win-1251 и переделывать всё под utf-8 весьма проблематично. (да и проблемы вроде не в этом)
Можно конечно сделать и ЧПУ без mod_rewrite, но прибегать к этому не хочется.
Судя по яндексу и поиску на портале вообще мало кто пытался так измудрится как это делаю я и все просто писали ЧПУ без mod_rewrite.
При этом если в адресной строке вводить не рускоязычные сиволы, а их код после urlencode(), то это тоже не помогает, в .htaccess всё равно обрабатывает только крякозяблы.

Можно ли как то подружить mod_rewrite c кириллицей? Или может есть какие-то другие пути обхода этой проблемы?
Ведь на Википедии к примеру уже сделано подобное.
Большое спасибо за внимание.

Обсуждение

Форма ответа