У меня есть сайт с кириллическим доменным именем. Существует авторизация lib, которая перенаправляет пользователя на страницу входа, но URL-адрес каким-то образом пропущен.punycode и .рф cirillic domain redirect
Веб-сайт находится на CodeIgniter, а функция переадресации - стандартная функция перенаправления codeigniter. Я изменил немного и теперь выглядит как этого
function redirect($uri = '', $method = 'location', $http_response_code = 302)
{
if (! preg_match('#^https?://#ui', $uri))
{
$uri = site_url($uri);
}
//exit(idn_to_ascii($uri));
switch($method)
{
case 'refresh' : header("Refresh:0;url=http://".idn_to_ascii($uri));
break;
default : header("Location:http://".idn_to_ascii($uri), TRUE, $http_response_code);
break;
}
exit;
}
idn_to_ascii функции, кажется, не правильно кодирования URL-адрес строки UTF ...
Может кто-нибудь намек на решение?
Вместо
http://xn-------63dat7alb0aizbbjcoujt7j3a6e.xn--p1ai/auth/admin/
Я получаю
xn-------63dat7alb0aizbbjcoujt7j3a6e.xn--/auth/login-foj4c
Любые идеи?
Я попробую. –
Что-то не так с mb_subst, так как он полностью отключает латинскую часть и всегда меня перенаправляют на корень ... любые идеи почему? –
@ MR.GEWA Я отредактировал свой ответ и поместил образец рабочего кода –