Inicio » Blog » Laravel

24 octubre, 2018

Controlar errores 404

Cuando se mueve o elimina urls y están indexadas en Google es necesario dejar un mensaje diciendo que el contenido ha sido movido y esta en tal dirección

Controlar errores 404

Suscríbete a nuestro canal en Youtube

Suscríbirse

En un proyecto web que realiza un rediseño de su estructura web, cambian las url o direcciones web, a esto se suma el hecho de estar indexadas en google. El problema radica en que los internautas que buscan información probablemente encuentren tu página y si ésta muestra un error no fundado, entonces será un rebote, google penaliza estos errores, porque ofrecen una mala experiencia de usuario, y con baja el posicionamiento de tu sitio web en los resultados de búsqueda de Google.

¿Qué causa un error 404 en Laravel?

En Laravel, un error 404 se produce cuando se intenta acceder a una URL que no coincide con ninguna de las rutas definidas en tu aplicación. En otras palabras, Laravel no puede encontrar una ruta que coincida con la URL solicitada por el usuario. Esto puede deberse a varias razones:

  1. Ruta no definida: Si no has definido una ruta en tu aplicación que coincida con la URL solicitada, Laravel generará un error 404. Por ejemplo, si intentas acceder a una URL como /pagina-no-existente pero no has definido una ruta para esa URL, Laravel no sabrá cómo manejarla y generará un error 404.

  2. Error tipográfico en la URL: Un error 404 también puede ocurrir si el usuario comete un error tipográfico al escribir la URL. Si la URL contiene errores de escritura o no coincide exactamente con una ruta válida, Laravel no podrá encontrar la ruta correspondiente y generará un error 404.

  3. Rutas dinámicas no coincidentes: Si tienes rutas dinámicas en tu aplicación que esperan parámetros en la URL, es importante asegurarse de que los parámetros coincidan con lo que se espera en la ruta. Si los parámetros no coinciden o están ausentes en la URL, Laravel puede generar un error 404.

  4. Rutas deshabilitadas o condicionales: Si has configurado rutas condicionales o has deshabilitado rutas bajo ciertas circunstancias (por ejemplo, en función del estado de autenticación del usuario), es posible que una URL que normalmente sería válida genere un error 404 en ciertas condiciones.

  5. Errores en la configuración del servidor web: A veces, los errores 404 también pueden estar relacionados con la configuración del servidor web en el que se ejecuta tu aplicación Laravel. Por ejemplo, si el archivo .htaccess o la configuración de reescritura de URL no está correctamente configurado en un servidor Apache, podría dar lugar a errores 404.

Para solucionar un error 404 en Laravel, generalmente debes asegurarte de que la URL esté correctamente escrita y que haya una ruta definida en tu archivo de rutas que coincida con la URL. Además, verifica cualquier lógica condicional que pueda estar afectando la disponibilidad de rutas en función de ciertas condiciones. En muchos casos, personalizar la página de error 404 para proporcionar una experiencia de usuario más amigable también es útil.

Veamos un ejemplo básico de un error 404:

 

Pues bien, para solucionar y/o controlar este error , podemos hacer uso de las páginas de error 404, que por defecto tienen los servidores web o al menos se puede crearlas, siempre revisando el archivo .htaccess para crear la directiva o modificarla.

En laravel debemos crear un archivo blade.php dentro del directorio:

resources -> views -> errors -> 404.blade.php 

 

El codigo es :

@extends('layouts.app')         
@section('content')

<div class="container">
    <div class="row">        
        <div class="col-md-9">
            <div class="row">
            <div class="col-md-8 col-md-offset-2">
            <h1> SITIO WEB .COM </h1>
            <p>Ups ... Cambiamos de lugar</p>
            
            </div>
          
            </div>
        </div>
        
    </div>
</div>
@endsection

 

 

Un ejemplo más detallado para controlar un error 404

El manejo de errores 404 y la personalización de la vista asociada a estos errores generalmente se realizan de la misma manera a lo largo de las diferentes versiones. Aquí te proporciono un ejemplo general de cómo puedes controlar errores 404 y personalizar la vista en Laravel:

Creación de una vista personalizada para el error 404:

Lo primero que debes hacer es crear una vista personalizada para el error 404 en tu aplicación. Para ello, puedes seguir estos pasos:

  • Crea una vista en la carpeta resources/views/errors de tu proyecto. Puedes nombrarla, por ejemplo, 404.blade.php.

  • Personaliza esta vista según tus necesidades. Agrega el HTML, CSS y cualquier otro contenido que desees mostrar cuando se produzca un error 404.

Configuración de la respuesta 404 personalizada:

Puedes configurar Laravel para que utilice tu vista personalizada cuando se produzca un error 404. Para hacerlo, puedes usar el método abort en tu archivo de rutas o controladores. Aquí hay un ejemplo:

Route::get('/ruta-no-existente', function () {
    abort(404);
});

En este ejemplo, cuando un usuario accede a la ruta /ruta-no-existente, Laravel generará un error 404 y mostrará la vista personalizada que creaste anteriormente (404.blade.php).

Manejo de errores 404 en un controlador:

También puedes manejar errores 404 en un controlador. Por ejemplo, si deseas verificar la existencia de un modelo y generar un error 404 si no se encuentra, puedes hacer lo siguiente:

public function show($id)
{
    $modelo = Modelo::find($id);

    if (!$modelo) {
        abort(404);
    }

    return view('modelo.show', ['modelo' => $modelo]);
}

En este caso, si el modelo no se encuentra en la base de datos, se genera un error 404 y se muestra la vista personalizada.

Ten en cuenta que, si Laravel ha lanzado la versión 10 desde mi última actualización en septiembre de 2021, te recomiendo consultar la documentación oficial de Laravel 10 o cualquier recurso actualizado para obtener información específica sobre cómo manejar errores 404 en esa versión particular. Los conceptos generales deberían seguir siendo similares, pero puede haber cambios en la implementación específica.


Leido 5716 veces

Compartir link del tutorial con tus amigos


Aprende más sobre Laravel

Cursos de programación

Codea Codea App

México, Colombia, España, Venezuela, Argentina, Bolivia, Perú

© Todos los derechos reservados Codea App | ...de frente al código!!! | 2020 - 2023