我正在构建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);
}
答案 0 :(得分:2)
改为使用302。
状态301 表示资源(页面)已永久移动到新位置。客户端/浏览器不会第二次请求原始位置,而从现在开始将仅使用新位置。
状态302表示资源暂时位于其他位置,并且客户端/浏览器将始终请求原始位置。