Domain moved permanently (comment gerer un changement de nom de domaine sans perdre son referencement ?)

 

Je viens d'avoir un cas de figure concernant un changement de nom de domaine, celui qui etait utilisé avait un PR de 4 et bien sur la nouvelle zone un PR de 0, pour eviter de perdre le referencement et notamment l'arrivée sur des pages spécifiques, j'ai fait un petit module asp.net 2.0 qui gere ce cas de figure :

Code a mettre dans le repertoire App_Code

public class DomainMovedPermanentlyModule : IHttpModule
{
    public DomainMovedPermanentlyModule()
    {
    }

    #region IHttpModule Members

    public void Dispose()
    {
    }

    public void Init(HttpApplication context)
    {
        context.BeginRequest += new EventHandler(context_BeginRequest);
    }

    void context_BeginRequest(object sender, EventArgs e)
    {
        HttpApplication app = (HttpApplication)sender;
        HttpContext ctx = app.Context;

        if (ctx.Request.Url.Host.IndexOf("olddomain.com") == -1)
        {
            return;
        }

        string newUrl = string.Format("{0}://{1}{2}"
            , ctx.Request.Url.Scheme
            , ctx.Request.Url.Host.Replace("olddomain.com", "newdomain.com");
            , ctx.Request.RawUrl);
        ctx.Response.StatusCode = 301;
        ctx.Response.Status = "301 Moved Permanently";
        ctx.Response.AddHeader("Location", newUrl);
    }

    #endregion
}

ensuite il faut ajouter le module dans la section httpModule du fichier web.config

<httpModules>
    <add name="DomainMovedPermanentlyModule" type="DomainMovedPermanentlyModule"/>
</httpModules>

et toutes les requetes olddomain.com iront sur le newdomain.com y compris pour les pages spéciales.

voici les recomandations de Google sur le sujet :

http://www.google.com/support/webmasters/bin/answer.py?answer=34464&query=301&topic=&type=

Aucun commentaire: