Редирект адресов с русскими буквами через htaccess

12
siv1987
На сайте с 02.04.2009
Offline
427
#11
Маэстро:
По идеи , как я понял эти шестнадцатиричные симолы нормальноя явление

В вашем первом варианте они не в нормальном явление, они экранированные. Их конечно можно декодировать и получить нормальное значение, но фактически это будут два разных адреса.

Не нормальное: %25D1%2582%25D0%25B5%25D1%2581%25D1%2582

Нормальное: %D1%82%D0%B5%D1%81%D1%82

строка: тест

М
На сайте с 08.09.2006
Offline
223
#12
Милованов Ю.С:

echo urldecode($_GET['option']);

Option взят из примера в 1-ом посте.

UPDATE:
совсем забыл.
В $_GET и других сеперглобальных массивах уже декодированные данные храняться.
Код указанный выше - не стоит юзать:)
Так что просто применяйте $_GET['option']

urldecode($_GET['option']) вот так помогло, без urldecode получался код.

---------- Добавлено 13.03.2013 в 20:48 ----------

siv1987:
В вашем первом варианте они не в нормальном явление, они экранированные. Их конечно можно декодировать и получить нормальное значение, но фактически это будут два разных адреса.

Не нормальное: %25D1%2582%25D0%25B5%25D1%2581%25D1%2582
Нормальное: %D1%82%D0%B5%D1%81%D1%82
строка: тест

хмм, а как экранирование убрать?

По большому счету все проблемы решение:

1) флаг NE - оставляет русские буквы в адресе

2) urldecode($_GET['option']); преобразует экранированные как я понял коды , в руские буквы.

Просто уже хочется до конца понять, а как экранированный код преобразовать к неэкранированный, то есть чтобы вместо %25D1%2582%25D0%25B5%25D1%2581%25D1%2582 был %D1%82%D0%B5%D1%81%D1%82

Не бойся неизбежного... Уже не продаю авто морды...
Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#13

Если вот эту строку(%D1%82%D0%B5%D1%81%D1%82) пропустить через енкодер(не ПХПшная функция, а вообще), то получаем Вашу(%25D1%2582%25D0%25B5%25D1%2581%25D1%2582). Просто в исходной строке символ процента экранируется своим hex-значением(%25).

У Вас в $_GET['option'] приходит разэкранированая строка.

Пришло в адресной строке так: %25D1%2582%25D0%25B5%25D1%2581%25D1%2582

ПХП ее декодировал и в $_GET['option'] положил: %D1%82%D0%B5%D1%81%D1%82.

А urldecode() уже преобразовал эту строку в русские буквы.

Вы гляньте(ссылко) че отдает в заголовке Location страница, которая должна редиректить.

Подпись))
М
На сайте с 08.09.2006
Offline
223
#14

Огромне все спасибо, все тепреь понятно, все работает!

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий