【发布时间】:2018-08-29 12:50:59
【问题描述】:
我正在构建一个 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);
}
【问题讨论】:
-
301 是浏览器缓存的永久重定向,并且由于第一个请求,任何下一个请求都将直接转到重定向 URL,而无需接触您的服务器。
-
那么 302 会修复它吗?但是像 facebook 和 whatsapp 这样的爬虫还会跟着它吗?
-
302或307应该没问题,需要多浏览器测试。