Risolvere il problema di redirezione SSL

Questo problema è stato risolto nella versione di WP Rocket 2.5.6. Se avevi già implementato questa soluzione in precedenza, ora puoi rimuovere il MU plugin relativo.

Dovrai solo aggiungere le regole di redirezione SSL nel tuo file .htaccess così come descritto nel documento " Redirezione da HTTP a HTTPS". 

Versione 2.5.5 e precedenti

A volte se stai usando un protocollo SSL sul tuo sito, può sorgere un problema di redirezione in cui vedi sulla barra degli indirizzi del tuo browser qualcosa del genere, invece della URL corretta:

https://iltuosito.it/wp-content/cache/wp-rocket/iltuosito.it/index.html_gzip

Puoi risolvere questo problema aggiungendo il codice seguente al file functions.php del tuo tema. Una volta aggiunto lo snippet, disattiva e riattiva 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;
}

In alternativa, per un migliore mantenimento, puoi risolvere il problema creando un MU plugin: 

1) Crea una cartella chiamata  mu-plugins dentro la directory wp-content.

2) Usando un editore di testo basico, crea un nuovo file e inserisci il seguente codice:

<?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) Salva il file come: wprocket-sslfix.php (puoi chiamarlo come vuoi, questo è solo un suggerimento) 
4) Carica il file dentro la cartella mu-plugins   
5) Infine assicurati di disattivare a riattivare WP Rocket. 

Compatibilità Multisito

Se stai usando un'installazione multisito, devi sostituire questa linea:

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

con le seguenti:

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

Assicurati di sostituire "yourdomain.com" con il nome di dominio corretto del tuo sito!

Compatibilità con NGINX

Se stai usando un server NGINX server, usa il seguente codice: 

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

Anche qui assicurati di sostituire "yourdomain.com" con il nome di dominio corretto del tuo sito!