Códigos de ejemplo para redirigir tu sitio web
Hay ocasiones en que necesitamos redirigir nuestra web actual (o alguna página concreta de la misma) a un nuevo destino. Los casos más comunes son hemos trasladado nuestro sitio web de dirección y queremos que nuestros visitantes enlacen directamente con el nuevo sitio (para no perder visitas), tenemos un nuevo subdominio y queremos redirigir sus consultas a un subdirectorio concreto de nuestro dominio. queremos facilitar de forma automatiza una entrada a protocolo seguro.
En estas situaciones son varias las opciones que tenemos disponibles, mediante código, para enlazar a nuestros visitantes a la nueva dirección web. Veamos algunos ejemplos de cómo podemos hacerlo, de forma muy sencilla con diferentes opciones HTML, Javascript PHP o ASP.
Redirección web mediante PHP
<?php //Si queremos informar de que se trata de un cambio permanente (error 301) //header( 'HTTP/1.1 301 Moved Permanently' ); // header ('Location: https://www.dominio.com'); ?>
Ejemplo de redirección de subdominio.dominio.com a www.dominio.com/subdominio:
<?php // Obtenemos la página en la que ha estado antes el visitante $pagina_anterior = '{$_SERVER['HTTP_HOST']}'; // Extraemos el subdominio con una expresión regular preg_match('/^(www.)?(.+)?.dominio.com/',$pagina_anterior,$encontrados); // Si hay un subdominio if ($encontrados[2]=='subdominio') { // Redireccionamos a www.dominio.com/subdominio Header ('Location: https://www.dominio.com/subdominio'); exit; } ?>
Debemos tener en cuenta que en PHP no podemos realizar una redirección cuando se ha mandado contenido al navegador, pero si la redirección depende de algo que se controla posteriormente a la generación de contenido HTML, podemos trabajar con buffer, de la siguiente forma:
<?php ob_start(); ?> <html> <body> Texto de la página </body> </html> <? ob_end_clean(); header ('Location: https://www.dominio.com'); ?>
Normalmente las redirecciones se realizan en base a variables que están recogidas en el servidor web. Puede consultar las variables que se ejecutan en su servidor ejecutando un comando phpinfo:
<? echo phpinfo(); ?>
Y recogerlas utilizando un ejemplo como el siguiente:
<? $encabezado = $_SERVER['HTTP_HOST']; $ruta = $_SERVER['DOCUMENT_ROOT']; $fichero = $_SERVER['PHP_SELF']; echo $encabezado; echo '<br>'; echo $ruta; echo '<br>'; echo $fichero; ?>
Redirección mediante ASP
<% Response.Redirect ('https://www.dominio.com') %>
Igual que en PHP, debemos tener en cuenta que no podemos realizar una redirección cuando se ha mandado contenido al navegador, pero si trabajamos con buffer porque la redirección depende de algo que se controla posterioremente a la generación de contenido HTML podemos vaciarlo así:
<% Response.Buffer=true %> <html> <body> Texto de la página </body> </html>
<% Response.Clear Response.Redirect ('https://www.dominio.com') %>
Normalmente las redirecciones se realizan en base a variables que están recogidas en el servidor web. Puede consultar las variables que se ejecutan en su servidor ejecutando el siguiente código :
<TABLE BORDER='1' WIDTH='90%' BORDERCOLOR='#304B58'> <TR> <TD valign='top'><B>Variable</B></TD> <TD valign='top'><B>Value</B></TD> </TR> <% For Each variable in Request.ServerVariables%> <TR> <TD><FONT FACE='Times New Roman' SIZE='1'><%= variable %></FONT></TD> <TD><FONT FACE='Times New Roman' SIZE='1'> <% If Request.ServerVariables(variable) = '' Then Response.Write ' ' Else Response.Write Request.ServerVariables(variable) End If %> </FONT></TD> </TR> <% Next %> </TABLE>
Y recogerlas utilizando un ejemplo como el siguiente :
<% encabezado = Request.ServerVariables('SERVER_NAME') ruta = Request.ServerVariables('APPL_PHYSICAL_PATH') fichero = Request.ServerVariables('SCRIPT_NAME') Response.Write encabezado Response.Write '<br>' Response.Write $ruta Response.Write '<br>' Response.Write $fichero %>