jonathanbj_A_guy_at_a_computer_creating_wildcard_redirects-php
Inicio > Blog de marketing en internet y seo > Técnico > Crear redirecciones comodín en php

Crear redirecciones comodín en php

En PHP, puede crear redireccionamientos comodín usando expresiones regulares para encontrar patrones en las URLs solicitadas y luego redireccionar basándose en esos patrones. Puede lograrlo usando la función preg_match() para comparar la URL con un patrón de expresión regular y, a continuación, utilizar header("Ubicación: ...") para realizar la redirección.

He aquí un ejemplo de cómo puede crear una redirección comodín en PHP utilizando expresiones regulares:

// Obtener la URL solicitada
$requestUri = $_SERVER['REQUEST_URI'];

// Definir el patrón de expresión regular para que coincida con patrones específicos
$pattern = '/^\/user\/(\d+)\/?$/'; // Este patrón coincide con URLs como /user/{user_id}/

// Comprueba si la URL solicitada coincide con el patrón
if (preg_match($pattern, $requestUri, $matches)) {
    // Extraer el ID de usuario de la URL
    $userId = $matches[1];
    
    // Redirigir a una página específica del perfil del usuario
    header("Ubicación: /perfil.php?user_id=$userId");
    exit();
} else {
    // Manejar otros casos o mostrar una página de error
    echo "Página no encontrada";
}

En este ejemplo, el patrón de expresión regular '/^\/user\/(\d+)\/?$/' coincide con URL como /usuario/{user_id}/. Si la URL solicitada coincide con este patrón, extrae el ID de usuario y redirige a una página de perfil de usuario específica. Puede modificar el patrón de expresión regular para que coincida con diferentes patrones de URL según sus necesidades.

Redirigir todos los subdominios (www y no www por ejemplo)

Para redirigir todas las versiones especificadas de subdominios al mismo destino, puede utilizar el siguiente código:

// Obtener la URL solicitada
$requestUri = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

// Definir el patrón de expresión regular para buscar diferentes subdominios y la ruta raíz
$pattern = '/^(www\.)?ejemplo\.com\/?$/i';

// Compruebe si la URL solicitada coincide con el patrón
if (preg_match($pattern, $requestUri)) {
    // Redirigir al destino deseado (en este caso, la raíz del sitio web)
    header("Ubicación: https://example.com/");
    exit();
} else {
    // Manejar otros casos o mostrar una página de error
    echo "Página no encontrada";
}

En este código, la expresión regular '/^(www\.)?ejemplo\.com\/?$/i' coincide con URL como http://example.com/, https://example.com/, http://wwwexample.com/y https://wwwexample.com/ de forma insensible a mayúsculas y minúsculas. Si la URL solicitada coincide con este patrón, se redirige a https://example.com/. Si la URL no coincide con este patrón, puede tratar otros casos o mostrar un mensaje de error según sea necesario.

Tenga en cuenta que es posible que tenga que ajustar el patrón de expresión regular en función de sus requisitos específicos o de las variaciones del dominio. La dirección i en el patrón de expresión regular hace que la coincidencia sea insensible a mayúsculas y minúsculas, lo que le permite coincidir con variaciones en el uso de mayúsculas.

Tenga en cuenta que manejar las redirecciones de esta manera puede ser muy eficaz, pero también requiere una cuidadosa consideración de las expresiones regulares utilizadas para evitar coincidencias no deseadas y bucles de redirección.