Ya comentamos anteriormente la forma de redireccionar o redirigir una página web a otra en un servidor Apache. Vimos que mediante directivas en el archivo .htaccess podemos realizar dichos redireccionamientos aplicándoles el código de estado a la petición HTTP más conveniente.
Pero ¿cómo podemos hacerlo si te surge la necesidad de realizar el redireccionamiento en base a ciertos condicionales en tu propio código en PHP? ¿Y si la página a la que quieres redirigir se obtiene a partir de esos condicionales? Estas situaciones de condición no pueden configurarse en el archivo .htaccess, y solo puedes hacerlo directamente en el código de tu página.
Vamos a mostrarte como, a partir del propio código de tu página en PHP, puedes realizar una redirección o redireccionamiento hacia otras páginas, condicionadas o no, a partir de las condiciones necesarias y oportunas que puedan surgir en tu código.
Cómo redireccionar a otra página en PHP
Para realizar dichos redireccionamientos vamos a usar el método header de PHP. Dicho método permite enviar encabezados HTTP sin formato, lo que nos va a permitir realizar lo que queremos. Para usar este método, debes de tener en cuenta que debes de llamarlo antes de haber realizado ninguna impresión por pantalla, es decir, antes de cualquier etiqueta HTML o de cualquier función echo, print_r o similar.
Para realizar un redireccionamiento simple, a cualquier otra página, el código es el siguiente:
1 | header('Location: urlDestino'); |
Como urlDestino puedes insertar:
- Una página: ‘nuevaPagina.php’
- Una ruta relativa: ‘ruta/nuevaPagina.php’
- Una ruta absoluta a la url que desees: ‘http://midominio.es/nuevaPagina.php’
Tanto la urlDestino como el momento de realizar la llamada al método header podremos calcularlos a través del flujo de ejecución de nuestro script, pudiendo realizar redireccionamientos en base a las necesidades de nuestra página:
1 2 3 4 5 6 | if($_POST['variable'] == 'valor1'){ header('Location: urlDestino1'); } else{ header('Location: urlDestino2'); } |
Con el método header estamos enviando encabezados HTTP, por lo que podremos también indicar el tipo de redireccionamiento que estamos realizando, enviando, previamente, la información del código de estado del mismo:
1 2 | header('Status: 301 Moved Permanently', false, 301); header('Location: urlDestino'); |
Así es como, con el método header de PHP, puedes redirigir o redireccionar a otras páginas, incluso en base a ciertas condiciones impuestas en tu propio código.