DavidM

Canonicalizacion con PHP

Escrito por: DavidM

Si te gusta lo que ves y te parece interesante, suscribete por email o por RSS. ¡Gracias por tu visita!.

Si tu web está alojada en un servidor que no tiene mod_rewrite habilitado, no puedes usar htaccess para canonicalizar el dominio (Ej. redirigir http://ejemplo.com a http://www.ejemplo.com).

La solución es insertar el siguiente código en el header antes de cualquier otro código PHP o HTML.

<?php
$redirect = false;
$path = $_SERVER['REQUEST_URI'];
$url = $_SERVER['HTTP_HOST'];
if ($url != 'www.ejemplo.com') {
$redirect = true;
}

if ($redirect==true){
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.ejemplo.com' .$path);
}
?>

Obviamente hay reemplazar "www.ejemplo.com" con el dominio de tu web. ;)

Compartir este artículo:
  • del.icio.us
  • Google
  • Meneame
  • Technorati
  • BlogMemes Sp

5 comentarios para el post “Canonicalizacion con PHP”

  1. Comentario de sara el 13 de Octubre de 2008 a las 14:42

    Muchas gracias David, este código es muy útil. ¿Nos podrías decir cuáles son las ventajas de la canonicalización, por favor?

  2. Comentario de Canonicalizacion con ASP | Redireccionar a www con ASP | PosicionaPro el 28 de Octubre de 2008 a las 13:32

    [...] suscribete por email o por RSS. ¡Gracias por tu visita!.El otro día escribí sobre cómo canonicalizar los dominios con PHP. Ahora toca hacer lo mismo con ASP. De hecho, este código ASP puede ser mucho más práctico que [...]

  3. Comentario de Quitar Smart Quotes de Wordpress | PosicionaPro el 2 de Noviembre de 2008 a las 18:30

    [...] pero si quieres mostrarles a los lectores de tu blog algún tipo de código como el código para canonicalizar las URLs con PHP, estas comillas que Wordpress crea automáticamente acaban siendo como un grano en el [...]

  4. Comentario de sara el 19 de Noviembre de 2008 a las 18:53

    Con este código conseguimos que todas las URLs del tipo http: //ejemplo.com/lo-que-sea sean http ://www.ejemplo.com/lo-que-sea.

    Pero si también se quiere contemplar el caso de http ://www.ejemplo.com/index.php o http ://ejemplo.com/index.php se redirija a http ://www.ejemplo.com/ hay que poner alguna cosa más. Así que he modificado un poco este código con lo que el resultado ha sido éste:

    $redirect = false;
    $path = $_SERVER['REQUEST_URI'];
    $url = $_SERVER['HTTP_HOST'];
    if ($url != 'www.ejemplo.com' || $path == '/index.php') {
    $redirect = true;
    }

    if ($redirect==true){
    header('HTTP/1.1 301 Moved Permanently');
    if ($path == "/index.php") {
    header('Location: http ://www.ejemplo.com');
    } else {
    header('Location: http ://www.ejemplo.com' .$path);
    }
    }

    ¡Espero que os sirva!

  5. Comentario de sara el 5 de Diciembre de 2008 a las 12:43

    Todavía mejor.

    - Canonicaliza el host: de www .example.com/loquesa a example.com/loquesea y viceversa.
    - Canonicaliza el path: de host/loquesea/index.php a host/loquesa/. Por supuesto también de host/index.php a host/

    < ?php
    $target_host = "www .example.com"; // www .example.com or example.com
    $redirect = false;
    $path = $_SERVER['REQUEST_URI'];
    $host = $_SERVER['HTTP_HOST'];

    // Checking host
    if ($host != $target_host) {
        $redirect = true;
        $host = $target_host;
    }
    $url = $host.$path;

    // Checking path
    $pattern = "^(.*)(/index\.php)$^";
    preg_match_all($pattern, $url, $match);
    if ($match[0][0] != "") {
        $redirect = true;
        $url = $match[1][0] . "/";
    }

    // Redirect
    if ($redirect){
        header('HTTP/1.1 301 Moved Permanently');
        header('Location: http ://'.$url);
    }
    ?>

Escribe un comentario

Entradas relacionadas:

  1. Canonicalizacion con ASP El otro día escribí sobre cómo canonicalizar los dominios con...
  2. Canonicalizacion La canonicalización se refiere a definir una única versión de...


kubrick | empresas de posicionamiento web | consultoria posicionamiento web | precio posicionamiento web | primeros puestos en buscadores | marketing tienda online | internet marketing online | servicios de posicionamiento web | empresas de alta en buscadores | administracion adwords | agencia de notas de prensa | campañas de email marketing | agencias de publicidad en internet | garantia de posicionamiento en buscadores | directorio |