rediriger les requêtes http

Comment rediriger les requêtes HTTP vers HTTPS avec .htaccess

Partagez sur:

Cet article explique comment rediriger les requêtes HTTP vers HTTPS avec .htaccess.

Si vous avez installé un certificat SSL pour votre domaine, l’étape suivante devrait être de configurer l’application pour qu’elle serve tout le trafic Web via HTTPS.

LIRE AUSSI: Comment sécuriser un serveur nginx avec des certificats Let’s Encrypt sur Ubuntu 16.04 et 18.04?

Contrairement à HTTP, où les demandes et les réponses sont envoyées et renvoyées en texte brut, HTTPS utilise TLS/SSL pour crypter la communication entre le client et le serveur.

L’utilisation de HTTPS sur HTTP présente plusieurs avantages, tels que:

  • Toutes les données sont cryptées dans les deux sens. Par conséquent, les informations sensibles ne peuvent pas être lues si elles sont interceptées.
  • Chrome, Firefox et tous les autres navigateurs populaires marqueront votre site Web comme sûr.
  • HTTPS vous permet d’utiliser le protocole HTTP/2, ce qui améliore considérablement les performances du site.
  • Google privilégie les sites Web HTTPS. Votre site sera mieux classé s’il est servi via HTTPS.

La redirection peut être définie au niveau de l’application ou du serveur. Cet article explique comment rediriger le trafic HTTP vers HTTPS à l’aide du fichier .htaccess.

Si vous disposez d’un accès racine SSH au serveur Linux sur lequel s’exécute Apache, la méthode préférée consiste à configurer la redirection dans le fichier de configuration d’hôte virtuel du domaine.

Sinon, vous pouvez configurer la redirection dans le fichier .htaccess du domaine.

Le serveur Apache lit le fichier .htaccess à chaque demande de page, ce qui ralentit le serveur Web.

La plupart des panneaux de contrôle, tels que cPanel, vous permettent de forcer la redirection HTTPS à l’aide d’une interface utilisateur graphique.

 

Rediriger les requêtes HTTP vers HTTPS avec .htaccess

 

.htaccess est un fichier de configuration par répertoire pour le serveur Web Apache. Ce fichier est utilisé pour définir comment Apache sert les fichiers à partir du répertoire où il est placé et activer / désactiver des fonctionnalités supplémentaires.

En règle générale, le fichier .htaccess se trouve dans le répertoire racine du domaine, mais vous pouvez avoir d’autres fichiers .htaccess dans les sous-répertoires.

Vous pouvez modifier le fichier .htaccess (ou en créer un nouveau) via SSH ou FTP.

Pour rediriger les requêtes HTTP vers HTTPS avec .htaccess, ouvrez le fichier .htaccess et ajoutez le code suivant:

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Voici ce que fait chaque ligne de code:

  • RewriteEngine On – Active les capacités de réécriture et nous permet d’utiliser des règles de réécriture.
  • RewriteCond%{HTTPS} off – Vérifie si la connexion est du type de requête HTTP. Lorsque la condition est remplie, la ligne suivante est exécutée. Nous voulons uniquement rediriger les requêtes HTTP. Si vous omettez cette condition, vous obtiendrez une boucle de redirection.
  • RewriteRule ^(. *) $Https: //%{HTTP_HOST}%{REQUEST_URI}[L, R = 301] – Redirige toutes les requêtes HTTP vers HTTPS, avec le code d’état 301 (déplacé définitivement). Cette règle réécrira http://example.com/about en http://example.com/about ou http://www.example.com/about en https://www.example.com/about

S’il y a d’autres règles dans le fichier, ajoutez le code de réécriture en haut du fichier.

C’est ça! Après avoir ajouté ces lignes, enregistrez le fichier et actualisez votre navigateur.

Toutes les requêtes HTTP doivent être redirigées vers HTTPS.

Lors de la modification du fichier .htaccess, il n’est pas nécessaire de redémarrer le serveur car Apache lit le fichier à chaque requête.

Voici une autre règle plus générique pour rediriger de HTTP vers HTTPS:

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  • HTTP_HOST est le nom d’hôte que le visiteur demande lors de l’accès au site. Cette variable représente votre nom de domaine.
  • REQUEST_URI est l’URI utilisé pour accéder à la page.

Rediriger les requêtes HTTP vers HTTPS et WWW vers Non-WWW

 

Tout site Web est accessible sur deux URL: avec le préfixe www (comme www.example.com) et sans www (comme example.com).

La plupart des propriétaires de sites Web choisissent une version comme domaine préféré et y redirigent.

Pour rediriger de HTTP vers HTTPS et de www vers la version non www de votre site, ajoutez les lignes suivantes au fichier .htaccess:

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

Ici, nous avons deux conditions. Le premier vérifie si la connexion n’est pas HTTPS, et le second vérifie si la requête commence par www.

Si l’une des conditions est vraie (l’opérateur [OR]), la règle de réécriture est exécutée.

 

Rediriger les requêtes HTTP vers HTTPS et non-WWW vers WWW

Si vous préférez la version www de votre site, utilisez la règle suivante pour rediriger de HTTP vers HTTPS et de non-www vers le www

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

 

Conclusion

Nous vous avons montré comment modifier votre fichier .htaccess pour rediriger les requêtes HTTP vers HTTPS.

Si vous avez accès aux fichiers de configuration Apache, pour de meilleures performances, vous devez forcer HTTPS en créant une redirection 301 dans l’hôte virtuel du domaine.

Si vous avez des questions ou des commentaires, n’hésitez pas à laisser un commentaire.


Partagez sur: