14.03.2010, 14:02 | #1 |
Эксперт
Регистрация: 12.12.2009
Адрес: Ростов-на-Дону
Сообщений: 1,537
Вес репутации: 247
|
Русские буквы в URI, как исправить ошибку
Вот что-то не могу сообразить, как выйти из положения.
Пока на сайте были только страницы вида "/страница" ссылки выпадали в error из-за того что сапой эти страницы проиндексированы как /%D0%AB... и т.д., а SERVER['request_uri'] возвращал их как /%d0%ab... , выходил из положения путём $o['request_uri']=strtoupper($_SERVER['REQUEST_URI']); и всё работало. Сейчас возникла необходимость в "комбинированных" адресах страниц, т.е. нечто вроде "/страница_name_ещё", т.е. в uri есть как русские, так и латинские символы. И как сделать чтоб ссылки нормально отображались - что-то не могу сообразить... Кто что подскажет? |
14.03.2010, 18:44 | #2 |
Новичок
Регистрация: 18.04.2008
Сообщений: 5
Вес репутации: 0
|
У меня похожая проблема. Вчера добавил новый сайт, сегодня только что робот прошелся и добавил страницы.
На сайте кириллические ссылки, притом что комбинированные, в ссылке как кириллица так и латиница. Естественно, что русские символы преобразуются в код %D0%A1%D0%BA%D0%BB%D0%B0%D0%B4%D0%BD%D0%BE%. При проверке индексации ссылки в системе, такая ссылка как бы не видна в яндексе. Однако все эти страницы есть в яндексе. Проверка в гугле кстати показывает все нормально. Подскажите, что можно сделать в моем случае? Пока не отсылаю страницы на модерацию. Жалко терять нормальный доход с сайта. ТИЦ 140 ПР3 ЯК, 2000 страниц |
16.03.2010, 10:58 | #4 |
Эксперт
Регистрация: 12.12.2009
Адрес: Ростов-на-Дону
Сообщений: 1,537
Вес репутации: 247
|
Пришлось сделать так, изврат полнейший, наверняка есть ведь какой-то жутко простой способ.
Все урл-ы вида site.ru/str1_st2_str3.... где str1,str2 и т.д. - могут быть как русскими, так и латинскими Код:
$myuri=substr($_SERVER['REQUEST_URI'],1); //избавились от слеша в начале строки $myuri=explode("_",$myuri); //разбили на подстроки по разделителю _ //для каждой части uri , которая начинается со знака процента - перевели в верхний регистр foreach($myuri as $part) { if ($part[0]=='%') $newuri[]=strtoupper($part); else $newuri[]=$part; }; $myuri='/'.implode("_",$newuri); //собрали URI заново из частей $o['request_uri']=$myuri; $sape = new SAPE_client($o); //скормили сапе |
18.03.2010, 12:21 | #5 |
Новичок
Регистрация: 17.03.2010
Сообщений: 7
Вес репутации: 0
|
Та же фигня. Только ситуация сложнее - русские с латинскими чередуются как попало.
Очевидно, в том месте, где сравнивается значение из массива с текущей страницей перед сравнением надо их оба привести к одному регистру. PHP я знаю чуть лучше, чем никак и отыскать это место самому мне будет очень тяжело, посему вопрос к знатокам - где это? |
18.03.2010, 12:49 | #6 |
Добрый модератор
Регистрация: 09.07.2007
Адрес: глобус Украины
Сообщений: 27,600
Вес репутации: 1030
|
не пихать в урл говно всякое в виде кириллицы.
__________________
Правильный хостинг. В личке бесплатно не отвечаю обычно. |
18.03.2010, 16:31 | #8 |
Новичок
Регистрация: 18.04.2008
Сообщений: 5
Вес репутации: 0
|
Умник нашелся.
При нынешнем развитии кириллических доменов, через определенное количество лет с кириллическими символами в урле придется считаться и той же сапе придется модифицировать работу своего движка. А то, что они сейчас не хотят с этим связываться это херово. |
18.03.2010, 16:35 | #9 |
Администратор
Регистрация: 05.02.2007
Сообщений: 18,405
Вес репутации: 720
|
Crucifer, базар фильтровать научитесь. А кирилицы в урлах пока нет и не предвидится, не читайте всякий бред. Да, если уверены, что она есть - показывайте.
__________________
Читаем ФАК |
18.03.2010, 16:37 | #10 |
Добрый модератор
Регистрация: 09.07.2007
Адрес: глобус Украины
Сообщений: 27,600
Вес репутации: 1030
|
кириллицы в урле нет и быть не может. И кириллические домены - это тоже миф типа нанотехнологий, которые спасут Россию.
__________________
Правильный хостинг. В личке бесплатно не отвечаю обычно. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Русские буквы в URL | Andreiii | Вопросы по работе системы | 12 | 04.02.2011 04:48 |
Русские буквы в URL | Ervin | Установка кода на различные движки | 11 | 27.07.2009 11:28 |
Как исправить ошибку в форуме | Sergey2121 | Курилка | 6 | 22.09.2008 16:18 |
Русские буквы в УРЛах | solomko.net | Вопросы по работе системы | 21 | 02.08.2008 23:47 |
Русские буквы в урле | Kerk | Вопросы по работе системы | 5 | 05.07.2007 10:00 |
Часовой пояс GMT +3, время: 05:38.