我有一个带有西里尔域名的网站。有一个授权库将用户重定向到登录页面,但 url 不知何故格式错误。
该网站在 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 函数似乎没有正确编码 UTF url 字符串......
任何人都可以暗示解决方案吗?
代替
http://xn-------63dat7alb0aizbbjcoujt7j3a6e.xn--p1ai/auth/admin/
我明白了
xn-------63dat7alb0aizbbjcoujt7j3a6e.xn--/auth/login-foj4c
有任何想法吗 ?