Comment utiliser Apache pour rediriger tout le trafic de http vers https
Si votre site Web utilise Apache et SSL, il n’y a pas beaucoup de raisons de continuer à utiliser HTTP avec votre site Web. Le fait d’avoir à la fois HTTP et HTTPS ne fait que créer du contenu dupliqué, car désormais toute page donnée sera accessible via deux URL techniquement différentes.
Dans ce guide, nous supposerons que vous utilisez déjà Apache sur un système Linux et que vous souhaitez rediriger tout le trafic HTTP vers HTTPS. Cela garantira que tous vos visiteurs ne se connectent que via HTTPS en forçant leur navigateur à passer au protocole sécurisé s’ils ouvrent un lien HTTP. Si un utilisateur décide de faire précéder un lien d’http://, votre site sera suffisamment intelligent pour l’envoyer vers la bonne page, plutôt que d’afficher du contenu dupliqué ou d’afficher une erreur 404.
Il existe deux façons de configurer cette redirection dans Apache. La meilleure méthode consiste à configurer l’hôte virtuel, mais les utilisateurs de sites Web hébergés peuvent ne pas avoir accès à cette configuration. La deuxième méthode consiste à apporter quelques modifications au fichier .htaccess. Nous couvrirons ci-dessous les instructions étape par étape pour les deux méthodes. Commençons.
Dans ce tutoriel, vous allez apprendre :
- Comment rediriger HTTP vers HTTPS avec Virtual Host
- Comment rediriger HTTP vers HTTPS avec le fichier
.htaccess
Rediriger le trafic HTTP vers HTTPS dans Apache
Rediriger HTTP vers HTTPS avec Virtual Host
Sur Ubuntu, Debian et ses dérivés, vous trouverez les fichiers d’hôte virtuel dans /etc/apache2/sites-available. Ouvrez le fichier approprié dans l’éditeur de texte de votre choix :
sudo vi /etc/apache2/sites-available/example.conf
Sur RedHat, CentOS, Fedora et d’autres dérivés, vous trouverez la configuration des hôtes virtuels dans :
sudo vi /etc/httpd/conf.d
Ce fichier peut être utilisé pour rediriger le trafic, entre autres choses. Si vous utilisez déjà HTTP et HTTPS sur votre site Web, vous devez déjà avoir au moins deux hôtes virtuels dans le fichier : un pour 80 (HTTP) et un pour 443 (HTTPS). Pour rediriger le trafic HTTP, nous devrons ajouter la ligne suivante :
Redirect permanent / https://example.com/
Ajoutez-le quelque part dans l’en-tête <VirtualHost * :80>, comme dans l’exemple ci-dessous :
Exemple de configuration d’hôte virtuel avec le trafic HTTP redirigé vers HTTPS
Enregistrez vos modifications et quittez ce fichier lorsque vous avez terminé. Pour que les modifications prennent effet, vous devrez recharger la configuration Apache avec la commande systemctl suivante :
sudo systemctl reload apache2 # Debian, Ubuntu
OR
sudo systemctl reload httpd # Red Hat, CentOS, Fedora
Rediriger HTTP vers HTTPS avec le fichier .htaccess
Si vous n’avez pas accès à la configuration de l’hôte virtuel, le fichier .htaccess sera votre seule option. Il se trouve dans le répertoire racine de votre site Web, qui doit être accessible quel que soit l’hébergeur que vous utilisez.
Il suffit de modifier ce fichier et d’y ajouter les lignes de code suivantes. Vous pouvez simplement les coller au bas du fichier.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
C’est tout ce qu’il y a à faire. Vous devriez remarquer les modifications instantanément lorsque vous naviguez sur votre site Web, car Apache n’a pas besoin d’être rechargé pour que ces modifications prennent effet.
Réflexions finales
HTTPS est définitivement la voie à suivre. Dans cet article, nous avons vu à quel point il était facile de rediriger tout le trafic vers HTTPS et de se débarrasser complètement de HTTP. L’une ou l’autre de ces méthodes est viable pour forcer le trafic HTTP à passer à HTTPS sur votre site Web.
