PHP es un lenguaje de programación que está detrás de algunos de los sitios web más populares en todo el mundo, incluyendo aquellos construidos en WordPress. Si tu espacio en línea se encuentra en esta situación, puede ser realmente útil que sepas extraer las mejores herramientas de este lenguaje. Una de estas es la redirección PHP, con la que puedes incluir nuevas e increíbles funciones en tu sitio.
En esta ocasión, revisaremos todo lo que debes conocer sobre las redirecciones PHP. Para empezar, te presentaremos una definición de lo que es esta función; más adelante, trabajaremos cómo redireccionar con este lenguaje de programación.
Qué es PHP
El término PHP es un acrónimo para preprocesador de hipertexto (o hypertext preprocessor) y se trata de un lenguaje de programación que opera desde el lado del servidor. Esto hace que sea frecuentemente utilizado para el desarrollo de sitios web, pero también para la creación de aplicaciones, páginas de internet y otros espacios de navegación.
Este lenguaje se ha vuelto muy popular en los últimos años debido a que es altamente flexible, rápido y fácil de aprender. Además, puede ir más allá del simple diseño de páginas web. Por ejemplo, es una herramienta realmente útil para configurar redirecciones.
Qué es una redirección PHP
Las redirecciones PHP son instrucciones escritas en este lenguaje que permiten a los usuarios y a los motores de búsqueda dar saltos de una URL a otra, desde el lado del servidor. Esto se logra mediante la utilización de la función header().
La diferencia entre una redirección HTML y una PHP es que la primera se ubica en el lado del cliente, mientras que la segunda está del lado del servidor. Esto implica que las redirecciones PHP cargarán más rápido y ofrecen mayor seguridad al transitar de una página a otra.
Es importante tener en cuenta que aunque existen muchos beneficios asociados con su implementación, también estas redirecciones pueden ser muy peligrosas si no se usan del modo correcto. Por ello, es tan importante seguir pautas adecuadas para configurarlas.
Cómo crear una redirección PHP
Lo primero que debes hacer para crear una redirección PHP es incluir una función header().
Una vez hecho esto, es momento de definir el campo de respuesta de ubicación (o Location) con una URL o un archivo que permita al sistema saber a dónde quieres redirigir a los usuarios y motores de búsqueda. Esta anotación debe ir entre paréntesis. Solo considera que los únicos archivos que el sistema soporta son PHP, HTML, Python, CGI, Perl o programas CGI compilados.
Por ejemplo, tu función de encabezado (o header) lucirá así:
header("Location: http://www.example.com/"); or header("Location: example.php/");
Después del punto y coma deberás añadir otra función, ya sea die() o exit(). Si no lo haces así, el motor de búsqueda o los bots ignorarán la función header(), así como la página a donde quieres redirigir al usuario.
Esto puede ser problemático debido a que si lo que quieres es proteger una cierta página con una función header, no usar las funciones die o exit hará que tu página sea más vulnerable. Y, aun más, esto hará que tu redirección PHP simplemente no opere. Así deberá lucir tu header después de esto:
header("Location: http://www.example.com/"); exit;
Por último, deberás enmarcar la función entre las etiquetas <?php y ?>. El resultado lucirá así:
<?php
header('Location: http://www.example.com/');
exit;
?>
Encabezado de redirección PHP
Ahora que conoces la fórmula básica para crear una redirección PHP, discutamos algunas reglas adicionales que te ayudarán a utilizar del mejor modo la función header().
Primero, recuerda que al utilizar la función header() en tu archivo index.php no es causal. Segundo, ten presente que tienes la opción de elegir entre diferentes códigos de estatus HTTP. Estos controlarán cómo el servidor redirige a los usuarios de tu sistema.
Ubicación de redirección PHP
Para que tu redirección PHP sea exitosa, la función header() tiene que poder ser ejecutada. Es por ello que tu código debe aparecer debajo de la etiqueta <!DOCTYPE html> o <html> de tu archivo index.php.
Si no cumples con este paso, probablemente veas un mensaje de error que te informa que el header ya ha sido enviado.
Ten en cuenta que debes tener mucho cuidado al redactar tu encabezado, ya que incluso un espacio en blanco puede afectar el resultado.
Así luce una ubicación correcta:
<?php
header('Location: http://www.example.com/');
exit;
?>
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
</head>
<body>
<p>Hello, world!</p>
</body>
</html>
En cambio, lo siguiente es una ubicación inapropiada:
<!DOCTYPE html>
<html>
<?php
header('Location: http://www.example.com/');
exit;
?>
<head>
<title>Example</title>
</head>
<body>
<p>Hello, world!</p>
</body>
</html>
Qué es un código de estado de respuesta HTTP
Existe una razón por la que un código de estado de respuesta HTTP aparece: para informarte si tu solicitud HTTP fue cumplida exitosamente o no. Aun así, no todos los códigos de respuesta son iguales. Por el contrario, existen diferentes grupos de ellos.
Los códigos de respuesta son de 5 diferentes categorías: informativos (100-199), de éxito (200-299), de redirección (300-399), de errores por el lado del cliente (400-499) y, finalmente, del lado del servidor (500-599). Debido a que los códigos de estado de redirección alteran cómo los motores de búsqueda y los navegadores manejan las redirecciones, es recomendable que utilices un código de estado al usar tu función header(Location).
Hablemos de los dos códigos de estado más importantes.
Código 302
En situaciones en las que los códigos de estado no son especificados en la función header(), automáticamente se incluirá uno 302. En consecuencia, cuando veas un código 302, esto indica una redirección temporal y que la URL requerida reside temporalmente en otra URL.
Si estás experimentando una redirección 302, tu navegador solo guardará la página para esa sesión. Asimismo, el motor de búsqueda no transferirá la página a una nueva ubicación. Por ello, las redirecciones 302 son ideales para hacer mantenimiento de una página o algún otro uso temporal.
Así es como luce el encabezado con un llamado al código 302:
<?php
header("Location: https://www.examplecom/", true, 302);
exit();
?>
Redirección PHP 301
Para configurar una redirección PHP, puedes usar un código de estado 301. Debido a que este indica una redirección no definida, el navegador automáticamente redireccionará al usuario utilizando una URL vieja para la nueva dirección electrónica. Además, informará al motor de búsqueda que la página no está disponible, pero que ha sido reemplazada con algo más.
En consecuencia, una redirección 301 es considerada la más amigable con el usuario y con los motores de búsqueda.
Así es como luce el encabezado con un llamado al código 301:
<?php
header("Location: https://www.examplecom/", true, 301);
exit();
?>
Diferencias entre el código 302 y 301
En adición a su ejecución, existen algunos otros factores que diferencian a las redirecciones 301 y 302. Para empezar, los buscadores generalmente guardan la información durante más de una sesión (incluso indefinidamente). En algunos casos, también transferirán las páginas a una nueva ubicación. Esto hace que las redirecciones 301 sean ideales para duplicar contenidos y migraciones a un nuevo dominio.
Cómo configurar una redirección PHP sin la función header()
Si tienes dificultades para utilizar la función header(), es probable que configurar una redirección PHP con JavaScript te facilite las cosas. Mientras que las redirecciones en esta plataforma pueden ser más lentas, siempre son efectivas.
Estos son algunos pasos que puedes seguir para redireccionar con JavaScript:
Comienza con una función window.location. Añade un atributo href con la URL a la que quieres redirigir a tus usuarios y a los motores de búsqueda. Asegúrate de que incluyes los atributos apropiados para que abra en nueva ventana. Por último, incluye las etiquetas <script></script>.
Tu código luciría así:
<?php
<script type="text/javascript"> window.location.rel="noopener" target="_blank" href = 'http://www.example.com/';
</script>
?>
Mientras que los métodos JavaScript trabajan, puede que usarlos no sea lo más óptimo por algunas razones. JavaScript no solo es más lento, sino que también debe ser habilitado y descargado del lado del cliente para que funcione de forma correcta. Además, no existen muchos códigos de estado involucrados, por lo que no puedes incluir información sobre las redirecciones para guiar a los motores de búsqueda.
Consideraciones en el uso de redirecciones PHP
Como mencionamos anteriormente, es importante tener un buen dominio de cómo configurar una redirección PHP antes de hacerlo. Conocer las mejores prácticas en torno a ello te ayudará a asegurarte de que tendrás éxito.
A continuación, te compartimos algunos aspectos a considerar a la hora de configurarlos.
URL absoluta y URL relativa
Al configurar tus redirecciones, tienes la opción de elegir URL relativas o absolutas. Solo debes tener cuidado antes de incluir las primeras. En ocasiones, las plataformas para la creación de sitios web cotejan y renombran las páginas PHP. En algunos casos, mientras trabajas con tu código en un constructor de sitios puedes romper todas tus redirecciones. Y esto es algo que no queremos que pase.
La mejor forma en que puedes asegurarte de que esto no pase es poniendo mucha atención sobre hacia dónde te redirigen las URL.
Confirmación de la documentación
Siempre es una buena idea leer la documentación sobre cómo usar de forma adecuada las redirecciones PHP antes de publicarlas en tus programas. Esto te dará la certeza de que has seguido las mejores prácticas y que realmente sabes qué lograrás con ellas.
Además, puedes aprovechar para asegurarte de que tu sitio está seguro ante potenciales vulnerabilidades. Después de todo, si tu sitio utiliza redirecciones PHP, es probable que se beneficie de una auditoría completa.
Como hemos visto, las redirecciones PHP pueden ayudar a los usuarios y motores de búsqueda a navegar de forma rápida y segura entre páginas de tu propio sitio. La buena noticia es que configurarlas con la función header() es realmente sencillo y que puedes llevar un control propio de su uso si empleas comentarios PHP al margen de tu código. Ahora solo falta que pongas en práctica lo aprendido.