Apache : redirection HTTP vers HTTPS avec un fichier .htaccess | IT-Connect

Apache : redirection HTTP vers HTTPS avec un fichier .htaccess | IT-Connect

I. Présentation

Dans ce tutoriel, nous allons voir comment configurer une redirection HTTP vers HTTPS pour votre site Internet hébergé sur un serveur Apache.

Lorsque l’on configure un site sous Apache, soit l’on utilise un fichier de configuration, soit l’on utilise un fichier .htaccess, mais on peut aussi mixer les deux. Sur un hébergement mutualisé basique où l’on va héberger un site, nous n’avons pas accès directement à la configuration d’Apache, ce qui nécessite d’utiliser un fichier « .htaccess » à la racine du site pour apporter des modifications sur la configuration.

Pour rediriger automatiquement les flux HTTP vers HTTPS avec Apache, il va falloir réécrire les URL pour que « http » devienne « https » dans le but d’avoir une connexion sécurisée. Même si votre site est accessible en HTTP et en HTTPS, il est préférable de rediriger tout le trafic vers une connexion HTTPS.

L’utilisation du fichier .htaccess pour déclarer des règles de réécriture est une pratique 

II. Redirection HTTP vers HTTPS avec .htaccess

Je vous invite à vous connecter en SSH sur votre serveur dans le but de créer un fichier .htaccess à la racine du site. Si vous avez déjà ce fichier, vous pouvez simplement l’éditer.

Je pars du principe que la racine de mon site est :

/var/www/html/

Pour créer le fichier et l’éditer à l’aide de nano, cela donne :

nano /var/www/html/.htaccess

Ensuite, dans ce fichier il va falloir ajouter quelques lignes :

RewriteEngine On
RewriteCond %SERVER_PORT 80
RewriteRule .* https://%HTTP_HOST%REQUEST_URI (R=301,L)

La règle « RewriteEngine On » permet d’activer le module de réécriture d’URL d’Apache, c’est-à-dire mod_rewrite. Ensuite, on crée notre condition avec « RewriteCond » qui va déclencher la règle « RewriteRule » dans le cas où cela correspond. En fait, la règle va se déclencher si le client se connecte à notre site en utilisant le port 80, correspondant au http. Si vous utilisez un autre port que le 80, il faudra remplacer la valeur « 80 » par votre port.

Dans ce cas, on réécrit l’URL : on conserve la même URL complète, mais on utilise le préfixe « https://« . En complément, le fait d’indiquer « R=301 » précise qu’il s’agit d’une redirection permanente : une bonne pratique et une information importante à donner aux moteurs de recherche.

Il y a une autre façon de faire et qui est l’occasion aussi d’ajouter « www » avant le nom de votre domaine, si vous le souhaitez ! Ce qui est important c’est de ne pas utiliser les deux (avec ou sans « www »). Si vous utilisez le bloc ci-dessous, modifiez le nom de domaine.

RewriteEngine On
RewriteCond %SERVER_PORT 80
RewriteRule ^(.*)$ https://www.tuto.cm/$1 (R=301,L)

Ces règles doivent fonctionner dans la majorité des cas, mais je n’irais pas jusqu’à dire dans tous les cas. Si c’est sur votre propre serveur, ça devrait aller, mais parfois en fonction des hébergeurs il peut y avoir des restrictions.

Imaginons qu’il y ait un souci et que la règle ne fonctionne pas, essayez de remplacer « RewriteCond %SERVER_PORT 80 » par la règle suivante :

RewriteCond %HTTPS !=on

Il y a également une autre alternative possible, ou disons une écriture différente :

RewriteCond %HTTPS off

III. Redirection HTTP vers HTTPS via le VirtualHost

Petit bonus, pour rediriger les flux HTTP vers HTTPS en modifiant directement la configuration d’Apache, c’est-à-dire la configuration de votre VirtualHost, il suffit d’indiquer cette règle :

Redirect permanent / https://www.tuto.cm/

Bien sûr, modifiez avec votre nom de domaine 😉. Même si c’est possible, il n’est pas nécessaire d’utiliser RewriteCond et RewriteRule dans ce cas.

Hébergez votre site à partir de 2$ sur 👉👉👉 https://www.tnctech.ca

À propos Santana

Analyste en cybersécurité avec 5 ans d'expérience dans la protection des systèmes d'information contre les menaces et les attaques. Expertise dans la surveillance des réseaux, l'analyse des vulnérabilités, et la gestion des incidents de sécurité. Passionnée par l'innovation technologique et la mise en œuvre de solutions de sécurité robustes pour protéger les données sensibles et assurer la conformité réglementaire.

Vérifiez également

Installer PhpMyAdmin sur Debian 11 et Apache

Installer PhpMyAdmin sur Debian 11 et Apache

Table de Matieres1 I. Présentation2 II. Installation de PhpMyAdmin3 III. Création d’un admin pour PhpMyAdmin4 …

PfSense : reverse proxy HTTPS avec HAProxy et ACME (Let’s Encrypt) | IT-Connect

PfSense : reverse proxy HTTPS avec HAProxy et ACME (Let’s Encrypt)

Table de Matieres1 I. Présentation2 II. Gérer les certificats Let’s Encrypt sur PfSense2.1 A. Installation …

Bloquer les attaques sur son serveur Web (Apache + PHP) avec CrowdSec

Bloquer les attaques sur son serveur Web (Apache + PHP) avec CrowdSec

Table de Matieres1 I. Présentation1.1 A. L’objectif du jour2 II. Mise en place d’Apache et …

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.