Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   ЧПУ на кириллице (https://javascript.ru/forum/server/13965-chpu-na-kirillice.html)

cuberboy 22.12.2010 12:42

ЧПУ на кириллице
 
нужно реализовать адреса вида
../вапвап/ывавап/вапвап
делаю через .htaccess

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ in.php [L,QSA]

в результате на выходе чтонить типа /%D1%81%D0%BA%D0%BE%D1%80%D0%BE/

причем в транслите всё нормально....кодировка сайта utf-8

x-yuri 22.12.2010 23:30

в чем проблема?

p.s. ты же не рассчитываешь, что к тебе все запросы в utf-8 будут приходить?

Gozar 22.12.2010 23:50

удалено.

x-yuri 23.12.2010 01:18

Цитата:

Сообщение от Gozar
ps: чпу на кириллице говоришь?

в общем-то я сам не пробовал... а ты что думаешь по этому поводу?

cuberboy 23.12.2010 09:56

вчера забыл отписаться, сделал примитивно:

$ar=array(
"%D0%B9"=>"й",
"%D1%86"=>"ц",
"%D1%83"=>"у",
"%D0%BA"=>"к",
"%D0%B5"=>"е",
"%D0%BD"=>"н",
"%D0%B3"=>"г",
"%D1%88"=>"ш",
"%D1%89"=>"щ",
"%D0%B7"=>"з",
"%D1%85"=>"х",
"%D1%8A"=>"ъ",
"%D1%84"=>"ф",
"%D1%8B"=>"ы",
"%D0%B2"=>"в",
"%D0%B0"=>"а",
"%D0%BF"=>"п",
"%D1%80"=>"р",
"%D0%BE"=>"о",
"%D0%BB"=>"л",
"%D0%B4"=>"д",
"%D0%B6"=>"ж",
"%D1%8D"=>"э",
"%D1%8F"=>"я",
"%D1%87"=>"ч",
"%D1%81"=>"с",
"%D0%BC"=>"м",
"%D0%B8"=>"и",
"%D1%82"=>"т",
"%D1%8C"=>"ь",
"%D0%B1"=>"б",
"%D1%8E"=>"ю",
"%D1%91"=>"ё",

"%D0%99"=>"Й",
"%D0%A6"=>"Ц",
"%D0%A3"=>"У",
"%D0%9A"=>"К",
"%D0%95"=>"Е",
"%D0%9D"=>"Н",
"%D0%93"=>"Г",
"%D0%A8"=>"Ш",
"%D0%A9"=>"Щ",
"%D0%97"=>"З",
"%D0%A5"=>"Х",
"%D0%AA"=>"Ъ",
"%D0%A4"=>"Ф",
"%D0%AB"=>"Ы",
"%D0%92"=>"В",
"%D0%90"=>"А",
"%D0%9F"=>"П",
"%D0%A0"=>"Р",
"%D0%9E"=>"О",
"%D0%9B"=>"Л",
"%D0%94"=>"Д",
"%D0%96"=>"Ж",
"%D0%AD"=>"Э",
"%D0%AF"=>"Я",
"%D0%A7"=>"Ч",
"%D0%A1"=>"С",
"%D0%9C"=>"М",
"%D0%98"=>"И",
"%D0%A2"=>"Т",
"%D0%AC"=>"Ь",
"%D0%91"=>"Б",
"%D0%AE"=>"Ю",
"%D0%81"=>"Ё",
"%20"=>" "
);

$q=strtr($q,$ar);

cuberboy 23.12.2010 09:57

Цитата:

Сообщение от x-yuri (Сообщение 84839)
в общем-то я сам не пробовал... а ты что думаешь по этому поводу?

вы купите себе .рф ))) и придется пробывать ....

Gozar 23.12.2010 10:11

удалено.

Gozar 23.12.2010 10:12

удалено.

x-yuri 23.12.2010 10:22

Цитата:

Сообщение от Gozar
Я вообще не понимаю смысла поста ТС. он хочет папки называть кириллицей и чтобы apache грузил оттуда файлы с кириллическими названиями?

а mod_rewrite тогда зачем? Запросы передаются php, который решает, что отдавать. Просто нельзя быть уверенным по поводу кодировки, в которой браузер отправляет запрос

И как там с этими русскими доменными именами? Они уже договорились кодировать в utf-8?

Gozar 23.12.2010 10:52

удалено.

x-yuri 23.12.2010 10:58

в первом сообщении ТС указал настройки, которые перенаправляют запросы на несуществующие файлы/папки в in.php

браузер, как минимум, не всегда может знать, какую кодировку следует использовать. Например, если я получил сыслку по аське... И есть браузеры, которые отправляют в windows-1251

Gozar 23.12.2010 11:26

удалено.

Gozar 23.12.2010 11:56

удалено.

cuberboy 23.12.2010 17:13

спасибо вам за функцию её и надо было :yes:
учебник есть но там этого нету, более того инет рыл пол дня но всё мимо. Решил сделать тему, сейчас это актуально ))

x-yuri 23.12.2010 21:10

Цитата:

Сообщение от Gozar
Уточните пожалуйста браузер и проблему с этим связанную.

не могу сказать, что это прям-таки проблема. Я в общем-то кроме ff 2.0 не нашел других браузеров, которые так работают. Если ему в командной строке написать http://site/я, он отправляет http://site/%FF. Т.е. он передает URL в cp1251. Вот этот момент меня и интересовал. Они теперь всегда в utf-8 передают? Или, если знают кодировку сайта, передают в ней?

Gozar 23.12.2010 23:36

удалено.

x-yuri 24.12.2010 01:02

да дело не в urldecode. Введя в строке браузера http://site/я, firefox 2.0 (windows) отправит http://site/%FF, а другие браузеры http://site/%D1%8F. После urldecode получим http://site/я, но в разных кодировках. Похоже эта проблема уже не актуальна, но раз у тебя есть такие сайты, ты в принципе можешь посмотреть, приходят ли тебе запросы в cp1251


Часовой пояс GMT +3, время: 20:45.