Redireccion web desde home o index

Actualizado el domingo, 19 junio, 2016

Aveces necesitamos redireccionar nuestra web (o alguna página concreta de la misma) a un nuevo destino y aunque tenemos otras opciones de realizar el proceso como .htaccess, hoy veremos unos ejemplos de codes a insertar en tu pagina home o index. Los casos más comunes por el cual realizamos este proceso 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.
  • Facilitar de forma automatiza una entrada a protocolo seguro.
Redirección web en HTML Con espera de 10 segundos:
<html>

 <head>

  <meta http-equiv="Refresh" content="10;url=http://www.dominio.com">

 </head>

 <body>

  <p>Hemos cambiado de dirección. En 10 segundos enlazarás a la nueva 

  página. En caso contrario, pulsa en el siguiente enlace

  <a href="http://www.dominio.com">www.dominio.com</a></p>

 </body>

</html>

Sin espera:
<html>

 <head>

  <meta http-equiv="Refresh" content="0;url=http://www.dominio.com">

 </head>

</html>

Redirección web en Javascript Con espera:
<html>

 <head>

  <script type="text/javascript">

  function redirection(){  

  window.location ="http://www.dominio.com";

  }  setTimeout ("redirection()", 10000); //tiempo en milisegundos

  </script>

 </head>

 <body>

  <p>Hemos cambiado de dirección. En 10 segundos enlazarás a la nueva 

  página. En caso contrario, pulsa en el siguiente enlace  

  <a href="http://www.dominio.com">www.dominio.com</a></p>

 </body>

</html>

Sin espera:
<html>

 <body>

  <script type="text/javascript">

  window.location="http://www.dominio.com";</script>

 </body>

</html>

Redirección web mediante PHP 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: http://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: http://www.dominio.com/subdominio"); 

 exit; 

} 

?>

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: http://www.dominio.com");

?>

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 ("http://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 ("http://www.dominio.com")

%>

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

%>

Agregar comentario