Skip to content

1c redireccion

Aquí tienes un ejemplo de una aplicación web en PHP que permite al usuario elegir el tipo de cabecera de redirección que desea enviar. Dependiendo de la opción seleccionada, la aplicación redirigirá al usuario usando el tipo de cabecera correspondiente.

1. Formulario HTML para seleccionar la cabecera (index.html)

Este formulario permite al usuario elegir el tipo de cabecera de redirección que desea utilizar y luego enviarlo al servidor para procesarlo.

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Seleccionar Cabecera de Redirección</title>
</head>
<body>
    <h1>Elija el tipo de cabecera de redirección</h1>
    <form action="redireccion.php" method="POST">
        <label for="cabecera">Selecciona el tipo de cabecera de redirección:</label><br><br>
        <select name="cabecera" id="cabecera">
            <option value="301">301 - Redirección permanente</option>
            <option value="302">302 - Redirección temporal</option>
            <option value="303">303 - Redirección después de una operación POST</option>
            <option value="307">307 - Redirección temporal (HTTP/1.1)</option>
            <option value="308">308 - Redirección permanente (HTTP/1.1)</option>
        </select><br><br>
        <input type="submit" value="Redirigir">
    </form>
</body>
</html>

2. Archivo PHP para procesar la solicitud (redireccion.php)

Este archivo PHP recibe el tipo de cabecera seleccionado por el usuario y realiza la redirección usando el código de estado HTTP correspondiente.

<?php
// Verificar si el formulario ha sido enviado
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Obtener la cabecera seleccionada por el usuario
    $cabecera = isset($_POST['cabecera']) ? $_POST['cabecera'] : null;

    // Definir la URL de redirección
    $url_redireccion = 'https://www.ejemplo.com'; // URL de destino para la redirección

    // Validar que se ha seleccionado una cabecera válida
    if ($cabecera && in_array($cabecera, ['301', '302', '303', '307', '308'])) {
        // Enviar la cabecera de redirección correspondiente
        header("Location: $url_redireccion", true, $cabecera);
        exit(); // Terminar la ejecución del script después de la redirección
    } else {
        echo "Selecciona un tipo de cabecera válido.";
    }
}
?>

Explicación del código:

  1. Formulario HTML (index.html):
  2. El formulario tiene un select con varias opciones para elegir el tipo de cabecera de redirección (301, 302, 303, 307, 308).
  3. El formulario envía los datos a redireccion.php mediante el método POST.

  4. Archivo PHP (redireccion.php):

  5. El archivo PHP recoge el valor del campo cabecera usando $_POST['cabecera'].
  6. Si el usuario seleccionó una cabecera válida (de las opciones disponibles), se utiliza la función header() de PHP para enviar la cabecera de redirección correspondiente.
  7. La función header("Location: $url_redireccion", true, $cabecera); envía la cabecera HTTP con el código de estado y la URL de destino.
  8. La opción true indica que el encabezado debe ser reemplazado si ya existe.
  9. Se termina el script con exit() para asegurarse de que no se ejecute más código después de la redirección.

Cómo funciona:

  1. El usuario selecciona una opción en el formulario y hace clic en "Redirigir".
  2. El formulario envía la solicitud POST al archivo redireccion.php.
  3. PHP procesa la solicitud, obtiene la cabecera seleccionada y redirige al usuario a la URL especificada utilizando la cabecera de redirección correspondiente.

Tipos de Cabeceras de Redirección:

  • 301 (Moved Permanently): Redirección permanente. El recurso ha sido movido de forma permanente a una nueva URL.
  • 302 (Found): Redirección temporal. El recurso se encuentra temporalmente en otra URL.
  • 303 (See Other): Redirección después de una operación POST (por ejemplo, después de enviar un formulario).
  • 307 (Temporary Redirect): Redirección temporal (similar a la 302, pero no se permite cambiar el método HTTP).
  • 308 (Permanent Redirect): Redirección permanente en HTTP/1.1 (similar a la 301, pero manteniendo el método HTTP).

Este es un ejemplo sencillo de cómo crear una aplicación web que permita al usuario elegir el tipo de cabecera de redirección y luego redirigirlo según su elección.