Вставка модели Laravel второй раз работает только при перезапуске браузера - PullRequest
0 голосов
/ 29 августа 2018

Я создаю сокращающий 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 голосов
/ 29 августа 2018

Вместо этого используйте 302.

Статус 301 означает, что ресурс (страница) навсегда перемещен в новое место. Клиент / браузер не будет запрашивать исходное местоположение во второй раз и теперь будет просто использовать новое местоположение.

Состояние 302 означает, что ресурс временно находится где-то еще, и клиент / браузер всегда будет запрашивать исходное местоположение .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...