iPhone 5S上Safari中的西里尔语主机头无效

时间:2016-12-13 06:09:51

标签: php ios laravel safari

使用iPhone 5S的用户无法在Laravel 5.2应用程序中打开任何页面。 我在日志中找到了这个:

UnexpectedValueException vendor/symfony/http-foundation/Request.php in getHost
Invalid Host "%D0%B3%D1%83%D0%B3%D0%BB.%D1%80%D1%84"

我有一个转储此HTTP请求,并且他确实有一个URL编码的域名:Host: %D0%B3%D1%83%D0%B3%D0%BB.%D1%80%D1%84标头,而不是punycode版本xn--c1aay4a.xn--p1ai

这是Web服务器配置的问题还是什么? 感谢。

1 个答案:

答案 0 :(得分:0)

发送标头的问题。您必须在pynucode中手动转换uri

$iWantRedirectTo = 'http://гугл.рф';

// http://xn--c1aay4a.xn--p1ai/
$uriWithPunycode = convert_to_punycode($iWantRedirectTo);

// It will work "Location: http://xn--c1aay4a.xn--p1ai/"
header('Location: ' . $uriWithPunycode);

//  Safari will not convert itself
header('Location: http://гугл.рф');