thinkphp5使用redirect重定向的问题

老师您好,我在在thinkphp5中使用redirect遇到了一个让我非常困惑的问题,希望能帮助解答。

<?php
namespace app\index\controller;
class At extends Common
{
    public function hi($name)
    {
        if ($name == 'thinkphp')
        {
            return $this->redirect('http://www.baidu.com',302);
        }else{
            return $this->error('登录失败','ds');
        }
    }
    public function cg()
    {
        return '登录成功跳转';
    }
    public function ds()
    {
        return '登录失败跳转';
    }
}

这个代码按照老师说的方法,如果成功,则会跳转到百度网页,这个代码执行起来没有任何问题,但是,当我将这个重定向的url替换成另外一个的时候,问题出现了。

替换如下:

<?php
namespace app\index\controller;
class At extends Common
{
    public function hi($name)
    {
        if ($name == 'thinkphp')
        {
            return $this->redirect('mqqapi://card/show_pslcard?src_type=internal&version=1&uin=1921779545&card_type=person&source=sharecard',302);
        }else{
            return $this->error('登录失败','ds');
        }
    }
    public function cg()
    {
        return '登录成功跳转';
    }
    public function ds()
    {
        return '登录失败跳转';
    }
}

如代码所示,我将redirect重定向的地址替换成了mqqapi协议的一个地址(这个是QQ的一个协议),当我替换成这个地址的时候,报如下错误:

QQ图片20171004023810.png

按道理来说这个show_pslcard只是这个mqqapi协议的url其中的一部分,不知道为什么会出现这样的错误。是与thinkphp框架中某个东西冲突了吗,还是什么别的原因。

希望老师能帮我解答。

提问者芒果源自课程:TP5_页面跳转与重定向提问时间:2017-10-04 16:29我来回答
2回答
直奔十维
回复直奔十维赞同02星期前

只有当 session 临时文件位于操作系统的临时目录中时,过期的 session 临时文件才会被自动删除

    qzuser
    回复qzuser赞同02星期前

    thinkphp 的redirect方法的参数用法和Url::build方法的用法一致 你查看下参考手册就明白了,直接用? 就会被优先解析为访问了本地方法。达不到预想效果