Saltar al contenido

¿Cómo hacer que las rutas en Laravel no distingan entre mayúsculas y minúsculas?

Ya no busques más por todo internet ya que has llegado al espacio correcto, poseemos la solución que necesitas pero sin problemas.

Solución:

Para hacer que las rutas no distingan entre mayúsculas y minúsculas, deberá modificar la forma en que las rutas se relacionan con las URL. En Laravel, todo sucede en Validador de uri objeto, por lo que deberá crear su propio validador.

Afortunadamente, como la mayoría de las tareas en Laravelno es realmente complicado.

Primero, cree la nueva clase de validador: la única diferencia entre esta y la original es que agregará el i modificador al final de la expresión regular de la ruta compilada para activar la coincidencia que no distingue entre mayúsculas y minúsculas.

path() == '/' ? '/' : '/'.$request->path();
    return preg_match(preg_replace('/$/','i', $route->getCompiled()->getRegex()), rawurldecode($path));
  

En segundo lugar, debe actualizar la lista de comparadores que se utilizan para hacer coincidir la URL con una ruta y reemplazar la original Validador de uri con tigo.

Para hacer eso, agregue lo siguiente en la parte superior de su rutas.php expediente:

Esto eliminará el validador original y agregará el suyo a la lista de validadores.

Tenga en cuenta que este código no ha sido probado en ejecución. Avíseme si hay algún error tipográfico o algo no funciona como se esperaba. Estaré más que feliz de que funcione para ti 🙂

Sé que esta es una vieja pregunta, pero me encontré con este mismo problema y solo quiero compartir mi solución.

en método render(...) en Exceptions/Handler.php, captura las excepciones 404 y valida el caso de la URL y luego redirige así:

public function render($request, Exception $exception)

    $url = $request->url();
    $loweredCaseUrl = strtolower($url);
    if (
        $exception instanceof SymfonyComponentHttpKernelExceptionNotFoundHttpException &&
        $url !== $loweredCaseUrl
    ) 
        return redirect($loweredCaseUrl);
    

    return parent::render($request, $exception);

Eso es todo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *