¿Cómo Redireccionar una página PHP sin Header?

Con PHP se pueden crear algunos de los sitios web más populares del mundo, incluidos los sitios web de WordPress. Es un lenguaje de secuencias de comandos popular para el desarrollo de sitios web  porque es rápido, flexible y fácil de aprender. PHP se usa principalmente para crear rápidamente páginas web generadas dinámicamente, aunque se puede hacer mucho más.

Por ejemplo, PHP puede simplificar ciertas tareas como configurar una redirección. Veamos más de cerca  lo que es una redirección de PHP y luego veamos cómo configurar una.

Ahora que entendemos el beneficio de una redirección de PHP, veamos cómo configurar una.

  • Cómo redirigir en PHP

Para redirigir en PHP, primero deberá escribir su función header(), comenzando con header() .

Luego, dentro de los paréntesis, definirá el campo de encabezado de respuesta de ubicación con la URL o el nombre de archivo al que desea redirigir a los usuarios y motores de búsqueda. Los archivos admitidos incluyen PHP, HTML, Python, CGI, Perl o programas CGI compilados. Entonces, su función de encabezado podría verse así: header(«Ubicación: http://www.example.com/»); o  header(«Ubicación: ejemplo.php/»);

Después del punto y coma, tendrá que agregar una última función: la función die() o exit(). Sin ninguna de estas funciones, los rastreadores de motores de búsqueda o los bots pueden ignorar la función de encabezado y continuar procesando la página desde la que desea redirigir. Así es como se vería su encabezado ahora: header(«Ubicación: http://www.example.com/»); salida;

Finalmente, envolverá esta función en las etiquetas <?php y ?>. El resultado final será algo como esto:


<?php

header('Location: http://www.example.com/');


exit;


?>

  • Encabezado de redirección de PHP

Hay algunas reglas adicionales para usar la función header() para configurar una redirección de PHP. En primer lugar, importa dónde coloque la función header() en su archivo index.php. En segundo lugar, puede establecer códigos de estado HTTP para controlar cómo el servidor redirige a un usuario y motor de búsqueda.

Echemos un vistazo más de cerca a estas reglas a continuación.

  • Ubicación del encabezado de PHP

Para que la redirección de PHP funcione, la función de encabezado () debe ejecutarse antes de enviar cualquier salida. Eso significa que el código debe escribirse sobre las etiquetas <!DOCTYPE html> o <html> en su archivo index.php.

De lo contrario, es probable que reciba un mensaje de error que diga «los encabezados ya se enviaron». Supuestamente, la función de encabezado es tan delicada que un solo espacio en blanco puede provocar este error.

Aquí hay un vistazo a la ubicación adecuada:


<?php
header('Location: http://www.example.com/');
exit;
?>
<!DOCTYPE html>
<html>
    <head>
        <title>Example</title>
    </head>
    <body>
        <p>Hello, world!</p>
    </body>
</html>

 

Aquí hay un vistazo a una ubicación incorrecta:


<!DOCTYPE html>
<html>

<?php
header('Location: http://www.example.com/');
exit
?>
<head>
<title>Example</title>
</head>
<body>
<p>Hello, world!</p>
</body>
</html>

  • Códigos de respuesta de estado HTTP

Los códigos de respuesta de estado HTTP le permiten saber si su solicitud HTTP se completó con éxito o no. Hay diferentes grupos de códigos de respuesta, incluidos los redireccionamientos. Dado que un código de estado de redireccionamiento cambia la forma en que los navegadores y los bots de los motores de búsqueda manejan los redireccionamientos, se recomienda establecer un código de estado al usar el encabezado (Ubicación:). Echemos un vistazo a las diferencias entre los dos códigos de estado de redireccionamiento más comunes a continuación.

Código 302

Si el código de estado no se especifica en la función de encabezado, el valor predeterminado es 302. 302 indica una redirección temporal. Es decir, la URL solicitada reside temporalmente en un URI diferente.

Con una redirección 302, los navegadores normalmente almacenarán en caché la página de la sesión y ya no. Los motores de búsqueda normalmente tampoco transferirán el ranking de la página a la nueva ubicación. Eso hace que la redirección 302 sea ideal para realizar el mantenimiento del sitio u otros casos de uso temporal.

Aquí hay un ejemplo de la llamada de encabezado con el código 302 especificado:


<?php
header("Location: https://www.examplecom/", true, 302);
exit();
?>

Esta llamada no solo devuelve el encabezado al navegador, sino que también devuelve un código de estado de redirección 302.

Redireccionamiento PHP 301

Si desea configurar la redirección de PHP para que sea permanente en lugar de temporal, puede usar el código de estado 301. 301 indica una redirección permanente, por lo que el navegador redirigirá automáticamente a un usuario que usa la URL anterior a la nueva dirección de la página. e informar a los bots de los motores de búsqueda que la página ya no está disponible y puede ser reemplazada por la nueva página. Como resultado, una redirección 301 se considera el código 3xx más amigable para los usuarios y los motores de búsqueda.

Las otras diferencias clave entre los redireccionamientos 302 y 201 son que los navegadores generalmente almacenan en caché la página durante más tiempo que la sesión, posiblemente incluso indefinidamente, y los motores de búsqueda generalmente transfieren el rango de la página a la nueva ubicación. Eso hace que las redirecciones 301 sean ideales para redirigir contenido duplicado, migrar a un nuevo dominio y más.

Aquí hay un ejemplo de la llamada de encabezado con el código 301 especificado:


<?php
header("Location: https://www.examplecom/", true, 301);
exit();
?>

REDIRECCIÓN DE PHP SIN ENCABEZADO

Si tiene problemas con la función de encabezado, aún puede configurar una redirección de PHP con JavaScript. Si bien la redirección puede ser más lenta con JavasScript, seguirá siendo efectiva.

Configurar la redirección con JavaScript es simple. Comienza con la función window.location. Luego agregue un atributo ahref con la URL a la que desea redirigir a los usuarios y a los robots de los motores de búsqueda. No olvide agregar los atributos apropiados para asegurarse de que se abra en una nueva ventana. Finalmente, envuélvalo en etiquetas <script></script>.

Así es como se verá el código usando JavaScript:


<?php
<script type="text/javascript"> window.location.rel="noopener" target="_blank" href = 'http://www.example.com/';
</script>
?>

Sin embargo, hay algunos problemas con este método, además de que es más lento. En primer lugar, JavaScript debe estar habilitado y descargado en el navegador del cliente para que esto funcione. Tampoco hay códigos de estado involucrados, por lo que no puede incluir información sobre la redirección para los motores de búsqueda. Por estas razones, el uso de la función de encabezado se considera una buena práctica.

CONFIGURACÍON DE SUS REDIRECCIONAMIENTOS DE PHP

Los redireccionamientos de PHP pueden ayudar a los usuarios y a los motores de búsqueda a navegar sin problemas y de forma segura entre las páginas de su sitio. La buena noticia es que configurar estos redireccionamientos es fácil gracias a la función header().

¿Hablamos?