Exclure votre CDN des pages avec SSL

Parfois, utiliser votre CDN sur des pages distribuées via SSL peut donner lieu à des problèmes si votre CDN ne distribue pas les ressources via https.

Solution pour WP Rocket v2.5+

Dans la version 2.5 de WP Rocket, nous avons inclus une manière très simple de désactiver votre CDN sur les pages avec SSL.

Allez simplement dans WP Rocket > CDN et cochez la case "Désactiver le CDN sur les pages https" :

Solution pour WP Rocket v2.4

Cet extrait de code vous permet d’exclure votre CDN de ces pages. Ajoutez simplement le code suivant au fichier functions.php de votre thème puis videz le cache de WP Rocket :

add_action( 'plugins_loaded', '__deactivate_rocket_cdn_on_ssl' );
function __deactivate_rocket_cdn_on_ssl() {
    if( is_ssl() ) {
        define( 'DONOTCDN', true );
    }
}<br>

Ou, pour une maintenance simplifiée vous pouvez aussi régler ce problème en créant une extension automatique :

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: Deactivate CDN on SSL pages with WP Rocket
Author: Jonathan (WP Rocket Team)
Author URI: http://wp-rocket.me
*/
add_action( 'plugins_loaded', '__deactivate_rocket_cdn_on_ssl' );
function __deactivate_rocket_cdn_on_ssl() {
    if( is_ssl() ) {
        define( 'DONOTCDN', true );
    }
}<br>
	
3
Sauvegardez le fichier sous le nom : wprocket-fix.php (vous pouvez lui donner un autre nom, celui-ci n’est qu’une suggestion)
4
Téléchargez ce fichier au dossier mu-plugins
5
Enfin, assurez-vous de vider le cache de WP Rocket.

Solution pour les versions de WP Rocket antérieures à la 2.4

Ajoutez simplement le code suivant au fichier functions.php de votre thème, puis videz le cache de WP Rocket :

add_action( 'init', '__deactivate_rocket_cdn_on_ssl_pages' );
function __deactivate_rocket_cdn_on_ssl_pages() {
	if ( is_ssl() ) {
		remove_filter( 'template_directory_uri'	, 'rocket_cdn_file', PHP_INT_MAX );
		remove_filter( 'wp_get_attachment_url'	, 'rocket_cdn_file', PHP_INT_MAX );
		remove_filter( 'smilies_src' , 'rocket_cdn_file', PHP_INT_MAX );
		remove_filter( 'stylesheet_uri'	, 'rocket_cdn_file', PHP_INT_MAX );
		remove_filter( 'wp_minify_css_url' , 'rocket_cdn_file', PHP_INT_MAX );
		remove_filter( 'wp_minify_js_url' , 'rocket_cdn_file', PHP_INT_MAX );
		remove_filter( 'bwp_get_minify_src' , 'rocket_cdn_file', PHP_INT_MAX );
		remove_filter( 'the_content', 'rocket_cdn_images', PHP_INT_MAX );
		remove_filter( 'widget_text', 'rocket_cdn_images', PHP_INT_MAX );
		remove_filter( 'style_loader_src', 'rocket_cdn_enqueue', PHP_INT_MAX );
		remove_filter( 'script_loader_src', 'rocket_cdn_enqueue', PHP_INT_MAX );
	}
}<br>

Ou, pour une maintenance simplifiée vous pouvez aussi régler ce problème en créant une  extension automatique :

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: Deactivate CDN on SSL pages with WP Rocket
Author: Jonathan (WP Rocket Team)
Author URI: http://wp-rocket.me
*/
add_action( 'init', '__deactivate_rocket_cdn_on_ssl_pages' );
function __deactivate_rocket_cdn_on_ssl_pages() {
	if ( is_ssl() ) {
		remove_filter( 'template_directory_uri'	, 'rocket_cdn_file', PHP_INT_MAX );
		remove_filter( 'wp_get_attachment_url'	, 'rocket_cdn_file', PHP_INT_MAX );
		remove_filter( 'smilies_src' , 'rocket_cdn_file', PHP_INT_MAX );
		remove_filter( 'stylesheet_uri'	, 'rocket_cdn_file', PHP_INT_MAX );
		remove_filter( 'wp_minify_css_url' , 'rocket_cdn_file', PHP_INT_MAX );
		remove_filter( 'wp_minify_js_url' , 'rocket_cdn_file', PHP_INT_MAX );
		remove_filter( 'bwp_get_minify_src' , 'rocket_cdn_file', PHP_INT_MAX );
		remove_filter( 'the_content', 'rocket_cdn_images', PHP_INT_MAX );
		remove_filter( 'widget_text', 'rocket_cdn_images', PHP_INT_MAX );
		remove_filter( 'style_loader_src', 'rocket_cdn_enqueue', PHP_INT_MAX );
		remove_filter( 'script_loader_src', 'rocket_cdn_enqueue', PHP_INT_MAX );
	}
}
	
3
Sauvegardez le fichier sous le nom : wprocket-fix.php (vous pouvez lui donner un autre nom, celui-ci n’est qu’une suggestion)
4
Téléchargez ce fichier au dossier mu-plugins
5
Enfin, assurez-vous de vider le cache de WP Rocket.