Códigos de ejemplo para redirigir tu sitio web

3min

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 HTMLJavascript  PHP o  ASP.  

Índice

Redirección web mediante PHP

Ejemplo de redirección sin espera:
<?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
%>
Fernán García de Zúñiga

Productos relacionados: