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
