Laravel模型第二次插入仅在重新启动浏览器后才有效

时间:2018-08-29 12:50:59

标签: php laravel redirect

我正在构建URL缩短器。

我301重定向了页面访问,但是在将访问保存到数据库之前。但是我的问题是,页面访问仅保存一次。如果我第二次访问相同的短链接,则该访问不会保存。这正常吗?如果重新启动浏览器,则会获得第二条记录。

我个人认为浏览器会缓存重定向,而忽略了插入数据库的操作。

您对此有答案吗?

public function redirect($link)
    {
        $link = Link::where('shortlink', clean($link))->first();
        $protocol = ($link->protocol == '1') ? 'https://' : 'http://';

        $link->visits()->create([
            'browserName' => \Browser::browserName(),
            'browserFamily' => \Browser::browserFamily(),
        ]);
        return redirect($protocol . $link->longlink, 301);

    }

1 个答案:

答案 0 :(得分:2)

改为使用302。

状态301 表示资源(页面)已永久移动到新位置。客户端/浏览器不会第二次请求原始位置,而从现在开始将仅使用新位置。

状态302表示资源暂时位于其他位置,并且客户端/浏览器将始终请求原始位置