Comment faire une redirection 301 avec le fichier .htaccess

htaccess RewriteRule, mod_rewrite, RewriteCond & Redirect 301

Redirection d’un domaine WWW vers un domaine non WWW

# 301 redirection (redirection permanente) de http://www.monsite.com vers http://monsite.com
RewriteEngine on
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^www.monsite.tld$ [NC]
RewriteRule ^(.*)$ http://monsite.com/$1 [R=301,L]

Redirection d’un domaine vers un autre domaine

Supposons que nous voulions rediriger toutes les pages et publications de http://www.monsite1.com vers

http://www.monsite2.com. Pour ce faire, il vous suffit de placer le code ci-dessous dans le fichier .htaccess de http://www.monsite1.com.

# rediriger de http://www.monsite1.com vers http://www.monsite2.com
RewriteEngine On
RewriteRule ^(.*)$ http://www.monsite2.com/$1 [R=301,L]

Redirection 301

La redirection 301 est également appelée redirection permanente. Il redirige les visiteurs vers une nouvelle page et signale aux robots des moteurs de recherche que la page a été déplacée de façon permanente vers un nouvel emplacement.

Rediriger une page vers un autre emplacement –
Ici, je redirige l’URL http://monsite.com/categorie1/page1.html vers http://monsite.com/categorie/page2.html

# 301 Exemple de redirection
Redirect 301 /categorie1/page1.html http://monsite.com/categorie2/page2.html

Il peut aussi s’écrire comme –
Redirect permanent /categorie1/page1.html http://monsite.com/categorie2/page2.html

Dans l’exemple ci-dessus, nous mettons en place une redirection au sein du même site. Si vous envisagez de configurer une redirection entre deux sites Web différents, RewriteRule est une meilleure option.

Exemple –
J’utilise le même exemple de monsite1 et monsite2

# RewriteRule
RewriteRule http://www.monsite1.com/premierepage.php http://www.monsite2.com/deuxiemepage.php
RewriteRule http://www.monsite1.com/categorie/ http://www.monsite2.com/nouvcat/
RewriteRule http://www.monsite1.com/ http://www.monsite2.com/

Rediriger l’ensemble du site Web vers la page d’accueil d’un nouveau domaine
Disons que le code ci-dessous est placé dans le fichier .htaccess de monsite1, puis toute URL demandée pour monsite1 serait redirigée vers la page d’accueil de monsite2 (c’est-à-dire http://www.monsite2.com/)

# redirection permanente pour tout un site
Redirect 301 / http://www.monsite2.com

Le code ci-dessus peut également être écrit comme suite :

Redirect permanent / http://www.monsite2.com

Rediriger si le fichier n’existe pas

Si mon fichier – http://monsite.com/categorie/page.php n’existe pas, redirigez-le vers http://monsite.com/categorie/subcat/. Écrivons-le dans le fichier .htaccess –

# ne réécrit que si le fichier n'existe pas
RewriteCond %{REQUEST_URI} ^/categorie/(.*)/page.php$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^categorie/(.*)/page.php$ categorie2/subcat/$1

Rediriger vers le sous-domaine

Par exemple, je veux rediriger mes visiteurs vers http://sousdomaine.monsite.com à partir de http://monsite.com alors vous pouvez l’écrire comme-

# envoyer les visiteurs vers un sous-domaine
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^sousdomaine.monsite.com$ [NC]
RewriteRule ^/(.*)$ http://sousdomaine.monsite.com/$1 [L,R=301]

Résoudre le problème de contenu en double à l’aide de la réécriture

Par exemple – mon site Web www.monsite.com a une page Web qui s’affiche lorsque l’utilisateur entre l’une des URL ci-dessous dans le navigateur –
http://www.monsite.com/mapage
http://www.monsite.com/mapage?id=95

Si vous considérez le référencement, ces pages peuvent être traitées comme des pages en double, donc pour éviter une telle situation, vous pouvez rediriger les pages du second type vers le premier.

RewriteCond %{THE_REQUEST} ^GET /.*;.* HTTP/
RewriteCond %{QUERY_STRING} !^$
RewriteRule .* http://www.monsite.com%{REQUEST_URI}? [R=301,L]

Après avoir eu le code ci-dessus dans .htaccess, lorsque l’utilisateur entre l’url – http://www.monsite.com/mapage?id=95, il serait redirigé vers le – http://www.monsite.com/mapage


Articles similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page