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 :
- 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.
<?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; }
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.