【问题标题】:Laravel Model insert second time only works if browser is restartedLaravel 模型第二次插入仅在浏览器重新启动时才有效
【发布时间】: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应该没问题,需要多浏览器测试。

标签: php laravel redirect


【解决方案1】:

改用 302。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多