2011-05-02 31 views
13

Hola, tengo un nuevo dominio y quiero redirigir a mis usuarios a la ruta equivalente del nuevo dominio.Redirigir a la misma ruta en el nuevo dominio

Así que si siguen: oldsite.com/money.php?value=1

Luego se debe dirigir a: newsite.com/money.php?value=1

tengo el mismo header.php para todas las páginas, ¿puede hacerse esto con una simple línea php?

+0

¿Quieres hacer eso con un script php? No sé dónde tiene su dominio, pero ¿no puede establecer alguna configuración para hacer eso por usted? – Ruben

Respuesta

19

Le daré 2 funciones que podrían ser útiles para otra cosa;

function currentURL() { 
    $pageURL = 'http'; 
    ($_SERVER["SERVER_PORT"] === 443) ? $pageURL .= "s" : ''; 
    $pageURL .= "://"; 
    if ($_SERVER["SERVER_PORT"] != "80") { 
     $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; 
    } else { 
     $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; 
    } 
    return $pageURL; 
} 


function redirect2NewDomain() { 
$url = currentURL(); 
if(filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_HOST_REQUIRED) === FALSE) { 
    return false; 
} 
# Get the url parts 
$parts = parse_url($url); 
Header("Location : {$parts['scheme']}://{$parts['host']}"); 
} 

Por supuesto, usar .htaccess es mucho más fácil y será mejor para SEO;

RewriteEngine on 
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L] 

espero que esto ayude a

+2

Definitivamente iría con el método .htaccess. – Revenant

+2

Puede enviar un encabezado 301 en el script PHP y tendrá efectos similares desde una perspectiva SEO. –

+1

Sí, podría agregar que todavía no es mejor que .htaccess – Revenant

7

Algo como esto debería funcionar:

$uri = $_SERVER['REQUEST_URI']; 
Header("HTTP/1.1 301 Moved Permanently"); 
Header("Location: http://newsite.com$uri"); 

Pero si se puede modificar la configuración de su servidor web en cambio, que sería un mejor lugar para hacerlo.

+0

'script_name' no contiene las variables get – Teneff

+0

Correcto, gracias. Fijo. – Thilo

-1

Puede utilizar esta:

$new_domain = "http://example.com"; //your new domain 
$uri = $_SERVER['REQUEST_URI']; // URL from the request with the get variables 
header("Location: " . $new_domain . $uri); 
8

que no debe hacer esto en PHP. Estas cosas se pueden hacer fácilmente en su .htaccess:

#Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^www.olddomain.com$[OR] 
RewriteCond %{HTTP_HOST} ^olddomain.com$ 
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L] 

Este código se redirigir olddomain.com/page.php-newdomain.com/page.php

También redirigir carpetas: olddomain.com/folder/-newdomain.com/folder/

Al utilizar este código de Google también comprender que está cambiando de dominio y que no reducirá los rangos de su doble contenido.

0

me gusta utilizar este código:

// BEGIN redirect domain 
$domainRedirect = 'myNewDomain.com'; 
if(
($_SERVER['HTTP_HOST'] != $domainRedirect) 
){ 
header("HTTP/1.1 301 Moved Permanently"); 
header("Location: http://".$domainRedirect.$_SERVER['REQUEST_URI']); 
exit; 
} 
// END redirect domain 

esto:

header("HTTP/1.1 301 Moved Permanently"); 

es opcional pero es mejor para SEO: (https://moz.com/learn/seo/redirection)

Cuestiones relacionadas