Comment rediriger http vers https ?

J’ai choisi de catégoriser cette règle réécriture apache dans WordPress, mais elle parfaitement valable sur un site statique ou sur un autre CMS.

Explications rapides

  • Ligne 1: copier/coller RewriteEngine On si votre .htaccess est vierge. Sur WordPress il est déjà activé par défaut.
  • La ligne 2 est une condition qui vérifie le trafic n’est pas du https alors, il exécute la règle qui suit.
  • Ligne 3 est une règle qui s’applique à tous les fichiers, quelque soit leur extension et les exécutent avec le protocole https.

Le code ci-dessous est à coller dans un fichier .htaccess à la racine du site.

#DEBUT HTTP VERS HTTPS
RewriteEngine On 
RewriteCond %{HTTPS}  !=on 
RewriteRule ^/?(.*) https://%{SERVER_NAME}/\ [R,L] 
#FIN HTTP VERS HTTPS

Autre alternative qui fonctionne tout aussi bien

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

Rediriger le trafic http vers https grâce à la fonction wp_redirect

//Fonction à ajouter dans le fichier functions.php de votre thème
if ( !is_ssl() ) {
    wp_redirect('https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 301 );
    exit();
}

Attention, si vous n’utilisez pas de thème en enfant, vos modifications du fichier functions.php seront supprimées.

L’idéal serait la création d’un plugin regroupant toutes les fonctions dont vous avez besoin :

<?php
/*
Plugin Name: Mes fonctions perso
Description: Toutes mes fonctions de personnalisations de WordPress.
Author: S2prod
Version : 1.0.0
*/

//Fonction à ajouter dans le fichier functions.php de votre thème
if ( !is_ssl() ) {
    wp_redirect('https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 301 );
    exit();
}

Article mis à jour le : 19/01/2023

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *