htaccess и кирилица win-1251
Появилась проблемка с ModRewrite ( а может и не с ним :confused: )
Короче, в htaccess простая строчка типо:
В общем, эта ерунда должна преобразовывать исходное URL, в обращение к файлу users.php и вставлять туда параметр "Логин".
Проблема в том, что я делаю двиг, в котором разрешены буквы кириллицы в логине и, в итоге, при попытке просмотра пользователя с русскоязычным логином (h**p://somesite/users/пользователь.html), возникает ошибка. В GET возвращаются крякозяблики, очень напоминающие такие, которые получаются при конфликтах между win-1251 и UTF-8.
А это значение потом и по регуляркам проверяется, ну и естественно, ни кагого положительного результата не выдаётся.
Сам сайт (все файлы, БД) в windows-1251.
Уверен, кто нибудь сталкивался с такой проблемой, но вот в инете не нашел, к сожалению.
А причем здесь вообще 404 - я ошибка? Возможно вы меня неправильно поняли. Я mod_rewrite использую для создания ну типо ЧПУ :)
Мне не нужно выводить ошибку, если логин кирилицей, а нужно чтобы этот логин корректно передавался в PHP код и далее уже обрабатывался. Просто передаётся он неправильно (как я понял, из-за глюков с кодировками).
Я уже думаю, может просто в скриптах, где есть, применить функцию обратимого шифрования типо base64_encode перед вставкой логина в URL. Тогда проблема должна решиться. Но криво это как-то, да и УРЛ некрасиво выглядеть будет (весь смысл в псевдо-статике пропадает).
Как вариант, можно ID пользователя вставлять. Но это дофига переделывать придётся... Сразу вот я не глянул :mad:
Хотелось бы решение этой ерунды всё-таки найти. На различных сайтах (на основе того же ВордПресс) видел урл-ы кирилицой написанные. Там работало.
Я то как раз все правильно понял. http://httpd.apache.org/docs/2.2/mod/core.html#errordocument
Я прекрасно понимаю: данная ошибка возникает при неправильном наборе адреса (несуществующей странице), и я могу поставить редирект на какую-либо страницу при возникновении этой (и не только этой) ошибки по своему усмотрению. Но мне то не это нужно было. Или может я что не понял в ответе. Или сам слишком "замороченно" первый пост написал, что ввел в заблуждение.
В общем проблема решена. Как я сначала и предполагал, дело оказалось в том, что сервер перекодировал кириллицу, передаваемую в таком запросе, в UTF-8, а поскольку все скрипты в windows-1251 получилась несвязуха.
Всё решилось перекодированием на входе проверочной функции переменной из UTF-8 в Windows-1251.
Но разрешилось и ладно.