Configurer une redirection 301 vers une autre URL via un fichier .htaccess

Vous devez disposer d’un hébergement pour utiliser un fichier .htaccess 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.

En savoir plus sur les redirections avant de commencer : https://support.safebrands.com/redirection-web-301-ou-302/

 

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

N.B : Vous trouverez ci-dessous toutes les explications 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 ou espace 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 Plesk) :

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

 

{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.

(en savoir plus sur ce qu’est un domaine et/ou un sous-domaine : https://support.safebrands.com/quest-ce-quun-sous-domaine/)

 

Best Practice redirection web 301 : Rediriger HTTP vers HTTPS pour un domaine standard

Voici ce que vous souhaitez faire :

Utilisez le code ci-dessous :

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

 

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

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 vers une autre URL.

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 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

NB : Si un fichier .htaccess existe déjà, récupérez-le et ajoutez le code au contenu du fichier existant.

 

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.

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

Ou utilisez le Gestionnaire de fichiers Plesk :

 

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.

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 crypté (solution recommandée) ou en clair.

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

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

Voici le même fichier contenant des mots de passe crypté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 crypté (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 ?). Il faut de plus prendre la précaution de mélanger des majuscules, des minuscules, des chiffres et des symboles dans le nom du fichier…


Crypter les mots de passe

Apache fournit un outil permettant de générer facilement des mots de passe crypté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

Voici un petit utilitaire vous permettant de crypter vos mots de passe en ligne :

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/

Best practice : Stack overflow / 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

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/