Rediriger une page en www vers sa version sans www et inversément avec Apache
À l'heure où vous concevez un site Internet, il vous faut faire le choix du nom de domaine et si vous allez l'afficher avec ou sans les www
. Ce choix est important afin d'éviter qu'une même page ne soit accessible par deux adresses différentes : une avec le www
et une sans. Ceci s'appelle la duplication de contenu (duplicate content) et peut être pénalisant en terme de référencement : allant jusqu'à la suppression de votre site de l'index du moteur de recherche.
Afin d'éviter cela, il est possible de passer par des redirections HTTP via Apache2. Deux cas se présentent :
- la redirection de
http://www.example.com
vershttp://example.com
- et l'inverse
http://example.com
vershttp://www.example.com
Rediriger le nom de domaine sans www vers la version www
Dans le fichier .htaccess
à la racine de votre site, à condition que la réécriture d'URL soit activée :
# Si non présent dans fichier .htaccess, ajouter
RewriteEngine On
# Redirection de non www vers www
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Rediriger le www vers le nom de domaine sans www
Dans le fichier .htaccess
à la racine de votre site, à condition que la réécriture d'URL soit activée :
# Si non présent dans fichier .htaccess, ajouter
RewriteEngine On
# Redirection de www vers non www
RewriteCond %{HTTP_HOST} ^www\.
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
Il est également possible, si le site dispose de plusieurs noms de domaine d'en forcer un :
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
Attention avec HTTPS
Si votre site est disponible avec HTTPS, il est important d'effectuer des redirections vers ce protocole afin d'éviter, là aussi, la duplication de contenus.