Résoudre les problèmes de redirection SSL

Ce problème a été résolu depuis la version 2.5.6. Si vous aviez auparavant mis en place la solution ci-dessous, vous pouvez retirer l'extension automatique (Must-Use).

Vous aurez simplement besoin d’ajouter des règles de redirection SSL directement dans votre fichier htaccess en suivant ces instructions : Rediriger http vers https

Dans cet article

Versions 2.5.5 et antérieures

Si vous faites fonctionner votre site en SSL, il arrive parfois qu’il y ait un problème de redirection où vous verrez une url dans votre navigateur similaire à l’exemple suivant :

https://yourdomain.com/wp-content/cache/wp-rocket/yourdomain.com/index.html_gzip

Vous pouvez résoudre ce problème en ajoutant le code suivant dans le fichier functions.php de votre thème. Après avoir ajouté l’extrait de code, désactivez et réactivez WP Rocket.

add_filter( 'rocket_htaccess_marker', '__fix_wprocket_ssl_redirection' );
function __fix_wprocket_ssl_redirection( $marker ) {
	$redirection = '# Redirect http to https' . PHP_EOL;
	$redirection .= 'RewriteEngine On' . PHP_EOL;
	$redirection .= 'RewriteCond %{HTTPS} !on' . PHP_EOL;
	$redirection .= 'RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]' . PHP_EOL . PHP_EOL;
	$marker = $redirection . $marker;
	return $marker;
}

Un autre solution, pour une maintenance facilitée est d’utiliser une extension automatique (Must-Use) pour régler le problème :

1
créez un répertoire mu-plugins dans wp-content
2
En utilisant un éditeur de texte basique, créez un nouveau fichier et collez le code suivant :
<?php 
defined( 'ABSPATH' ) or die( 'Cheatin\' uh?' );
/*
Plugin Name: Fix SSL Redirection with WP Rocket
Author: Jonathan (WP Rocket Team)
Author URI: http://wp-rocket.me
*/
add_filter( 'rocket_htaccess_marker', '__fix_wprocket_ssl_redirection' );
function __fix_wprocket_ssl_redirection( $marker ) {
        $redirection = '# Redirect http to https' . PHP_EOL;
        $redirection .= 'RewriteEngine On' . PHP_EOL;
        $redirection .= 'RewriteCond %{HTTPS} !on' . PHP_EOL;
        $redirection .= 'RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]' . PHP_EOL . PHP_EOL;
        $marker = $redirection . $marker;
        return $marker;
}
	
3
Sauvegardez le fichier sous le nom : wprocket-sslfix.php (vous pouvez lui donner le nom que vous voulez, celui-ci est juste une suggestion)
4
Téléchargez ce fichier au dossier mu-plugins
5
Enfin, assurez vous de bien désactiver / réactiver WP Rocket.

Compatibilité Multisite

Si vous utilisez une installation multisite, vous devrez remplacer cette ligne :

$redirection .= 'RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]' . PHP_EOL . PHP_EOL;

Par :

	$redirection .= 'RewriteCond %{HTTP_HOST} ^www\.yourdomain\.com$ [NC]' . PHP_EOL;
	$redirection .= 'RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [L,R=301]' . PHP_EOL . PHP_EOL;

Assurez-vous de bien remplacer "yourdomain.com" avec le nom de domaine de votre site.

Compatibilité NGINX

Si vous utilisez un serveur NGINX, utilisez le code suivant :

server {
listen      80;
server_name mysite.com;
rewrite ^ https://$server_name$request_uri? permanent;
}

Assurez-vous bien de remplacer "mysite.com" avec le nom de domaine de votre site.