Redireccionar a la página original
Comprar curso

15. Redireccionar a la página original


1 comentarios

Inicia sesión para comentar

Comentarios:

  • Miguel Angel

    Miguel Angel hace 11 meses

    Victor, gracias por compartir tus conocimientos.

    Cuando doy click en los enlaces todo funciona correctamente.  Sin embargo al copiar y pegar el enlace no funciona y da el error 404 NOT FOUND.

    Este es el codigo:

    Route::get('/{link}', function (Link $link) {

      $ip = env('APP_ENV') == 'local' ? '173.255.175.40' : request()->ip();

      $response = Http::get('http://ip-api.com/json/' . $ip)->json();

      $link->visits()->create([

        'country' => $response['country'],

        'ip_address' => $ip,

        'user_agent' => 0

      ]);

      return redirect($link->url);

    })->name('shortlink');

    Gracias por tu ayuda

    • Victor Arana Flores hace 11 meses

      Hola amigo, te sugiero que revises tus rutas

      El error 404 indica que la ruta a la que quieres acceder no existe. Segun lo que reviso está bien formada, entonces el problema puede ser a la hora de buscar en la bbdd el registro.

      Asegurate que al definir public function getRouteKeyName() este apuntando correctamente al campo que identifica a cada registro

    • Miguel Angel hace 11 meses

      Hola Victor

      Gracias por responder

      Definitivamente como esta lo anterior ( Route::get('/{link}', function (Link $link) {} ) no me funciono. 

      Me está funcionando con este codigo:

      Route::get('/{link}', function ($link, Illuminate\Http\Request $request) {

        $link = App\Models\Link::where('slug', $link)->first();

        if ($link) {

          $user_agent = $request->header('User-Agent');

          $ip = env('APP_ENV') == 'local' ? '173.255.175.40' : request()->ip();

          $response = Http::get('http://ip-api.com/json/' . $ip)->json();

          $link->visits()->create([

            'country' => $response['country'],

            'ip_address' => $ip,

            'user_agent' => $user_agent

          ]);

          return redirect($link->url);

        } else {

          throw new Exception("Página no encontrada", 404);

        }

      })->name('shortlink');

       

      Saludos

      Miguel Angel