Redirections web 301 et 302 : Différences & Configuration

Les redirections 301 et 302 (redirections de type « serveur ») sont préférables pour le référencement. Il s'agit de redirections visibles par l'utilisateur, non-masquées et non-transparentes. Ce qui signifie que les visiteurs verront le changement d’URL dans leur navigateur.

Contrairement à la redirection par Frame ou Cadre, qui est une redirection masquée, non-visible par les visiteurs. Cela signifie que les visiteurs verront l’URL exacte qu’ils ont saisie dans leur navigateur alors qu’en fait, ils sont sur une autre URL. De plus, comme son nom l’indique, la redirection par frame (cadre) ne redirige pas vers une page web spécifique mais affiche un cadre de celle-ci.

 

Configuration sur le Portail :

Vous pouvez facilement mettre en place ces 3 types de redirections sur votre Portail Client SafeBrands depuis la configuration DNS de votre domaine (onglet Domaines > Portfolio > domaine concerné > DNS).

Cliquez sur "Nouvel enregistrement de ressource" > Sélectionnez le type d'enregistrement "Redirection web" > puis choisissez le type de redirection voulu "301 permanent", "302 temporaire", ou "Cadre (frame)".

 

Définitions :

• Redirection 301 : La redirection 301 est une redirection permanente. Si vous déplacez une page de votre site de manière permanente et définitive, il faut absolument utiliser une redirection 301. Les moteurs de recherche interprètent bien cette redirection, et mettent à jour automatiquement leur index en remplaçant l’ancienne URL par la nouvelle. C'est parfait pour le référencement de votre site et de vos pages. Il s'agit d'une redirection visible par les visiteurs qui verront donc le changement d’URL dans leur navigateur.

• Redirection 302 : La redirection 302 est une redirection temporaire. Si de manière temporaire une page, un répertoire ou même un site web est inaccessible (pour maintenance par exemple), il peut être utile et intéressant de définir temporairement une redirection 302 vers une autre page (ou un autre site) le temps que le problème soit résolu ou la maintenance terminée. Dans ce cas, il faut utiliser toujours une redirection de type 302. Il s'agit d'une redirection visible par les visiteurs qui verront donc le changement d’URL dans leur navigateur.

• Redirection par Frame ou Cadre : La redirection par frame est une redirection masquée, non-visible par les visiteurs. Contrairement aux deux autres types précédents. Cela signifie que vos visiteurs verront l’URL exacte qu’ils ont saisie dans leur navigateur alors qu’en réalité ils sont en train de visiter une autre URL ; la barre d’adresse continuant d’afficher l’adresse saisie initialement, non redirigée. De plus, comme son nom l’indique, la redirection par frame (cadre) ne redirige pas vers une page web spécifique mais affiche un cadre de celle-ci. Il est important de noter que ce type de redirection ne permet pas le bon référencement de votre site. Le même contenu se trouvant sur deux URLs distinctes constitue un contenu dupliqué. Les moteurs de recherche choisiront alors une URL plutôt qu’une autre, sans que vous puissiez choisir, ce qui n’est peut-être pas votre préférence pour le référencement de votre site.

 

Les moteurs de recherche interprètent bien la redirection 301, et mettent à jour automatiquement leur index en remplaçant l'ancienne URL par la nouvelle. Cela dit, il peut se passer plusieurs semaines avant que ce soit pris en compte.

Les moteurs de recherche n’interprètent pas tous la redirection 302 de la même façon. En règle générale, ils ne suppriment par de leur index la page qui est redirigée ; par contre ils associent à la page cible les caractéristiques de la page de départ. Ceci peut avoir de fâcheuses conséquences puisqu’un webmaster mal intentionné peut mettre en place sur son site une redirection 302 vers une page populaire, attendre que les moteurs considèrent que les 2 URLs correspondent à la même page, puis supprimer la redirection pour mettre en place une page standard, bénéficiant alors parfois du PageRank et des backlinks (liens entrants) de la page « piratée ».

Ce problème de « page hijacking » est bien connu des référenceurs et des moteurs de recherche. Yahoo utilise depuis l’été 2005 une parade en considérant qu’une redirection 302 entre 2 pages de domaines différents doit être interprétée comme une redirection 301 (ce qui supprime tout intérêt pour les pirates).

De très nombreux webmasters utilisent des redirections 302 en pensant bien faire, alors qu’ils devraient utiliser une redirection 301. C’est le cas par exemple de très nombreux annuaires, qui au lieu de faire des liens « en dur » vers les sites inscrits (un lien en dur est un lien classique et non une redirection), font des redirections 302. Il y a alors parfois des confusions sur certains moteurs entre la page de redirection sur l’annuaire et celle du site inscrit (dans les résultats de recherche, l’URL du site de l’annuaire peut remplacer celle du site inscrit).
(Source : webrankinfo.com)


Configurer une redirection 301 via PHP (index.php)

Pour configurer une redirection 301 vers une autre URL via un fichier index.php, vous devez disposer d'un serveur d'hébergement et suivre cette procédure. Cet article vous explique comment créer une redirection web 301 (redirection permanente) d'une URL vers une autre URL.

La redirection vers une autre URL s'effectue très simplement via l'utilisation d'une instruction serveur (ou directive PHP) à insérer dans un fichier index.php. Cette procédure s'effectue en 2 étapes :

  1. Création du fichier index.php
  2. Mise en place / saisie des instructions pour la redirection en PHP

Vous trouverez ci-après toutes les explications détaillées pour la création d'une redirection 301 permanente via un fichier index.php. Cette procédure ne peut être appliquée que sur un serveur d'hébergement.

1. Création du fichier index.php :

L’instruction serveur (appelée plus communément directive) permet de définir la redirection web que vous voulez, par le biais d’un fichier index.php.

Créez un fichier index.php (s’il n’existe pas déjà) dans le dossier "httpdocs" de votre gestionnaire de fichiers sur votre hébergement web, puis passez à l'étape 2.

NB : si un fichier index.html existe déjà, supprimez-le tout simplement, ou bien renommez-le par exemple en index.html.old si vous souhaitez le conserver.

2. Mise en place / saisie des instructions pour la redirection en PHP :

Vous devez cliquer sur le fichier index.php que vous venez de créer à l'étape 1 dans le répertoire "httpdocs" du domaine pour lequel vous souhaitez définir la redirection.

Cela affiche l'éditeur de code.

Supprimez les éventuels éléments de code prédéfinis, et saisissez vos lignes sur les modèles d'exemple suivants en remplaçant l'URL en exemple ("https://www.exemple.net/repertoire/page.php" ou "https://domaine.com) par l'URL de votre choix (http://exemple.com) :

Exemple 1 :
<?php
header("Status: 301 Moved Permanently", false, 301);
header("Location: https://www.exemple.net/repertoire/page.php");
exit();
?>

Exemple 2 :
<?
header ("HTTP/1.1 301 Moved Permanently");
header ("Location: https://domaine.com");
header ("Connection: close");
?>

Exemple 3 :
<?php
header ("Status: 301 Moved Permanently", false, 301);
header ("Location: https://domaine.com");
exit();
?>


Bravo, c'est terminé !

 

Configurer une redirection 301 via .htaccess

Les fichiers .htaccess fournissent une méthode pour modifier la configuration du serveur au niveau de chaque répertoire.

Pour configurer une redirection 301 vers une autre URL via un fichier .htaccess, vous devez disposer d'un serveur d'hébergement et suivre cette procédure. Cet article vous explique comment créer une redirection web 301 (redirection permanente) d'une URL vers une autre URL.

La redirection vers une autre URL s'effectue très simplement via l'utilisation d'une instruction serveur (ou directive Apache) à insérer dans un fichier .htaccess. Cette procédure s'effectue en 2 étapes :

  1. Création du fichier .htaccess
  2. Mise en place du fichier .htaccess

Vous trouverez ci-après toutes les explications détaillées pour la création d'une redirection 301 permanente via un fichier .htaccess. Cette procédure ne peut être appliquée que sur un serveur d'hébergement.

1. Création du fichier .htaccess :
L'instruction serveur (appelée plus communément directive) Redirect Apache permet de définir la redirection web que vous voulez, par le biais d'un fichier .htaccess.

Créez un fichier .htaccess (s'il n'existe pas déjà) à la racine de votre hébergement web, puis entrez ce qui suit :

Etape 1
Ouvrez un éditeur de texte (comme Bloc-notes, TextEdit, GNU nano, etc.).

Etape 2
Copiez le code ci-dessous dans l'éditeur de texte (ou utilisez l'éditeur de texte pour éditer le fichier directement dans votre espace d'hébergement Plesk ou cPanel) :

Redirect 301 / https://www.domain.com/

Note : https://www.domain.com/ est à remplacer par votre (sous-)domaine cible. Par exemple : https://domaine.com ou https://exemple.domaine.com


Autre possibilité / exemple :

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Note : {HTTP_HOST} est à remplacer par votre (sous-)domaine cible. Par exemple : domaine.com ou exemple.domaine.com

Il s'agit ici d'un exemple de code pour l'instruction au serveur (directive Apache) à mettre en place sur votre fichier .htaccess, mais vous pouvez bien sûr l'éditer, ou utiliser le code de votre choix, en fonction de vos besoins précis.

Etape 3
Enregistrez le fichier et nommez-le : " .htaccess ".

NB : Sous Windows, il se peut que l'application Bloc-notes ne vous laisse pas utiliser le nom .htaccess. Dans ce cas enregistrez-le sous un autre nom et renommez-le en utilisant l'explorateur.

 

2. Mise en place du fichier .htaccess :
Vous devez mettre le fichier .htaccess créé dans le répertoire dans lequel vous souhaitez définir la redirection. Pour rediriger votre domaine, et toute URL associée, ajoutez le fichier .htaccess à la racine de votre site.

Transférez vos fichiers à l'aide d'un client FTP (FileZilla, WinSCP...).

Ou utilisez le Gestionnaire de fichiers Plesk ou cPanel.

Vous pouvez également définir et modifier un mot de passe de contrôle d'accès aux répertoires de l'hébergement à l'aide du fichier .htaccess.

Utilisez un fichier .htpasswd pour mettre en place un identifiant et un mot de passe (voir plus bas la section Protéger un répertoire par un mot de passe pour plus d'infos).

NB : Si un fichier .htaccess existe déjà sur le répertoire racine de votre espace d'hébergement, récupérez-le et ajoutez le code voulu au contenu du fichier existant.

 

En savoir plus sur le fichier .htaccess et sa gestion - Tutoriel du serveur HTTP Apache : fichiers .htaccess : https://httpd.apache.org/docs/2.4/fr/howto/htaccess.html

 

 

Best Practice redirection web 301 : Rediriger HTTP vers HTTPS

Voici ce que vous souhaitez faire :

http://domain.tld/ → https://domain.tld/
http://www.domain.tld/ → https://domain.tld/
https://www.domain.tld/ → https://domain.tld/


Utilisez le code ci-dessous :

RewriteEngine on
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://domain.tld/%{REQUEST_URI} [R=301,L,NE]

ou autre possibilité :

RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

 

La condition %{HTTPS} !=on signifie " l'URL est demandée sans le protocole HTTPS ". Vous pouvez aussi tester RewriteCond %{HTTPS} off comme sur le premier exemple.

Note : Sur certains serveurs/hébergeurs, cette variable ne fonctionne pas. Il faut alors passer par le n° de port, sachant que HTTP est sur le port 80 et HTTPS est sur le port 443.

On pourra alors essayer d'utiliser les codes suivants :

RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteEngine on
RewriteCond %{REQUEST_SCHEME} =http
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]


En résumé, on obtient donc avec ce domaine example.com, pour rediriger :

http://example.com vers https://example.com
ET http://www.example.com vers https://example.com
ET https://www.example.com vers https://example.com


Le code suivant :

RewriteEngine On 
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [R=301,L,NE]

 

 

Rediriger les visiteurs provenant d’un site web vers un autre site web (URL a vers URL b)

Pour aller plus loin que la redirection précédente, vous pouvez renvoyer les visiteurs provenant d'une URL a vers une autre URL b.

Voici le code à employer :

#Rediriger les visiteurs d'une URL vers une autre URL
RewriteEngine on
RewriteCond %{HTTP_REFERER} sitesource\.com/
RewriteRule ^(.*)$ http://www.sitededestination.com [R=301,L]

ou

#Rediriger vers un autre site web sans référence au HTTP et au site d'origine (les redirections 301 HTTP > HTTPS étant déjà en place par ailleurs)
RewriteEngine on
RewriteRule ^ https://sitededestination.com%{REQUEST_URI} [R=301,L,NE]


Remplacez le site source et celui de destination par ceux de votre choix.

Le NE final est nécessaire pour transmettre des éléments tels que les paramètres GET et ceux similaires à la nouvelle URI qui reste inchangée.

Voir : http://httpd.apache.org/docs/2.4/rewrite/flags.html

 

Protéger un répertoire par un mot de passe

Il s'agit d'une des applications les plus utiles du fichier .htaccess car elle permet de définir de façon sûre (à l'aide d'un login et d'un mot de passe) les droits d'accès à des fichiers par certains utilisateurs. La syntaxe est la suivante :

AuthUserFile {emplacement du fichier de mot de passe}
AuthGroupFile {emplacement du fichier de groupe}
AuthName "Accès protégé"
AuthType Basic
Require valid-user


La commande AuthUserFile permet de définir l'emplacement du fichier contenant les logins et les mots de passe des utilisateurs autorisés à accéder à une ressource donnée.

La commande AuthGroupFile permet de définir l'emplacement du fichier contenant les groupes d'utilisateurs autorisés à s'identifier. Il est possible d'outrepasser cette déclaration en déclarant le fichier suivant : /dev/null.

Voici un exemple de fichier .htaccess :

ErrorDocument 403 https://developers.google.com/open-source/gci/help/403
AuthUserFile /repertoire/de/votre/fichier/.FichierDeMotDePasse
AuthGroupFile /dev/null
AuthName "Accès sécurisé au site CCM"
AuthType Basic
Require valid-user


Le fichier de mot de passe est un fichier texte devant contenir sur chacune des ses lignes le nom de chaque utilisateur suivi des deux points (:), puis du mot de passe chiffré (solution recommandée) ou en clair (non recommandé).

Voici un exemple de fichier de mot de passe non chiffré (ici .FichierDeMotDePasse)

Hercule_user1:Tata503
Robert_user2:Thor(38)
Charles_user3:Joe_le-Taxi]


Voici le même fichier contenant des mots de passe chiffrés :

Hercule_user1:$apr1$Si0.....$teyL5Y7BR4cHj0sX309Jj0
Robert_user2:$apr1$TD1.....$sfPTHjoufoNsda4HsD1oL0
Charles_user3:$apr1$zF1.....$wYKqRu2aVYlAEQnxVkly8.


.FichierDeMotDePasse
est un simple fichier texte contenant les noms des utilisateurs suivis d'un : puis du mot de passe chiffré (ou non) de cet utilisateur. Ce fichier de mot de passe ne devrait pas être mis dans un répertoire virtuel Internet (mais comment faire autrement si l'on ne possède pas de serveur Internet et que notre site est hébergé par un tiers ?). En outre, il faut prendre la précaution de mélanger des majuscules, des minuscules, des chiffres et des symboles dans le nom du fichier.

 


Chiffrer les mots de passe

Apache fournit un outil permettant de générer facilement des mots de passe chiffrés (aussi bien sous Windows que sous Unix), il s'agit de l'utilitaire htpasswd accessible dans le sous-répertoire bin d'Apache.

La syntaxe de cet utilitaire est la suivante :

 Pour créer un nouveau fichier de mots de passe :

htpasswd -c {chemin du fichier de mot de passe} utilisateur


Pour ajouter un nouvel utilisateur/mot de passe à un fichier existant :

htpasswd {chemin du fichier de mot de passe} utilisateur

Le mot de passe sera demandé en ligne de commande avec une confirmation.


Voici un exemple :

htpasswd -c /www/secure/.htpasswd Hercule_user1

 

Cet utilitaire vous permet de chiffrer facilement vos mots de passe en ligne : http://www.htaccesstools.com/htpasswd-generator/



 

Liens utiles - Plus d'infos et assistance :

Outil de génération (.htaccess Generator) : https://www.htaccessredirect.net/

 Outil de test (.htaccess tester) : https://htaccess.madewithlove.com/

 Stack overflow / Best Practice: 301 Redirect HTTP to HTTPS (Standard Domain) : https://stackoverflow.com/questions/29029049/best-practice-301-redirect-http-to-https-standard-domain

 En savoir plus sur le fichier .htaccess et sa gestion - Tutoriel du serveur HTTP Apache : fichiers .htaccess : https://httpd.apache.org/docs/current/fr/howto/htaccess.html

 Configurez et Testez vos redirections web et réponses HTTP(S) : https://www.redirection-web.net/redirection-301.php

 Comment faire une redirection permanente 301 via .htaccess ? (avec exemples à copier) : https://www.leptidigital.fr/webmarketing/seo/comment-faire-redirection-301-htaccess-exemples-13824/

 La recherche Google et les redirections d'URL : https://developers.google.com/search/docs/crawling-indexing/301-redirects?hl=fr

 

Si vous voulez davantage de détails sur tous les types de redirections et comment les implémenter, nous vous invitons à consulter les articles de Webrankinfo consacrés à ce sujet :

 Tutoriel Redirections - Le guide des redirections pour le référencement
 Les différents types de redirections
 Redirections HTTP - HTTPS