12 juil 2011
  • Partagez cet article avec vos amis !

Rediriger une adresse non-www vers www avec .htaccess

Si vous souhaitez que toutes les requêtes non-www soit redirigé vers la version www de votre site web, il vous suffit d’ajouter le code suivant à votre fichier .htaccess :

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

Si vous avez des sous-domaines, il faudra modifier le code de cette façon pour qu’ils soient toujours accessible (dans mon cas ce sont les sous-domaines images et forum) :
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www|images|forum)\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

Ainsi toutes les requêtes de http://geek-lab.fr sont maintenant redirigés vers http://www.geek-lab.fr. Voici quelques-uns des avantages de faire cela :

  • Eviter le contenu dupliqué dans Google
  • Eviter de partager le PageRank entre les versions www et non-www de votre site web
  • Plus joli et consistant

L’avantage du code ci-dessus c’est que vous pouvez l’utiliser pour n’importe quel site, puisque le nom de domaine n’est pas dedans.

Via : Redirecting non-www to www with .htaccess
Image via : Datacenter

6 Commentaires

  • Salut Reaves,

    Je voudrais faire un modif (celle-ci ne fonctionnant pas pour mon cas).

    L’url des liens est http://place4geek.com/blog/

    Je voudrais rajouter le www

    Voici le contenu de mon fichier .htacess :

    A la racine :

    AddType x-mapp-php5 .php
    AddHandler x-mapp-php5 .php

    AddType image/x-icon .ico
    ExpiresActive on
    ExpiresByType image/jpeg A2592000
    ExpiresByType image/gif A2592000
    ExpiresByType image/png A2592000
    ExpiresByType image/x-icon A2592000
    ExpiresByType application/x-javascript A2592000
    ExpiresByType text/css M604800
    ExpiresDefault M604800

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    # END WordPress

    Dans le dossier blog :

    AddType x-mapp-php5 .php
    AddHandler x-mapp-php5 .php

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /blog/
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /blog/index.php [L]

    # END WordPress

    Une idée ? :)

  • Tu peux essayer avec le code suivant que j’ai trouvé à l’adresse suivante (http://www.scriptalicious.com/blog/2009/04/redirecting-www-to-non-www-using-htaccess/)

    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_HOST} ^place4geek.com [NC]
    RewriteRule ^(.*)$ http://www.place4geek.com/$1 [L,R=301]

    Après il y a d’autres exemples à cette adresse : http://stackoverflow.com/questions/1659949/how-to-change-htaccess-to-redirect-all-non-www-links-to-www-pages

  • Je vais tester ça ce soir, merci :)

  • Salut Reaves,

    Apparemment j’ai trouvé la bonne solution grâce à tes conseils.

    Merci encore :)

  • Et bien c’est sympa que ça marche sur ton blog ;)

  • Salut,

    Merci pour le code, ça fonctionne bien (je sais où tu l’as pris… lol). J’ai un petit problème: je perds le https de mon shopping cart lorsque j’utilise ce code. J’ai tenté d’enlever le ,L mais mon shopping cart est introuvable.

    Merci

Laisser un commentaire

Suivre Geek-Lab sur Facebook


Me suivre sur Twitter