Corriger la redirection non-www

Si vous avez un problème avec la redirection non-www d’une version de votre url, utilisez la solution suivante dans une extension automatique :  

1
Créez un répertoire mu-plugins dans wp-content
2
A l’aide d’un éditeur de texte basique, créez un nouveau fichier et collez le code suivant. Assurez vous de remplacer "yourdomain" avec le nom de domaine de votre site :
<?php
defined( 'ABSPATH' ) or die( 'Cheatin\' uh?' );
/*
Plugin Name: Fix non-www Redirection with WP Rocket
Author: Jonathan (WP Rocket Team)
Author URI: http://wp-rocket.me
*/
add_filter( 'before_rocket_htaccess_rules', '__fix_wprocket_non_www_redirection' );
function __fix_wprocket_non_www_redirection( $marker ) {
	$redirection = '# Redirect non-www to www' . PHP_EOL;
	$redirection .= 'RewriteEngine On' . PHP_EOL;
	$redirection .= 'RewriteCond %{HTTP_HOST} ^yourdomain\.com [NC]' . PHP_EOL;
	$redirection .= 'RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [L,R=301]' . PHP_EOL . PHP_EOL;
	$marker = $redirection . $marker;
	return $marker;
}
	
3
Sauvegardez le fichier en tant que : fix-wp-rocket-non-www-redirection.php
4
Téléchargez ce fichier au dossier mu-plugins
5
Enfin, assurez vous de désactiver / réactiver WP Rocket.

Si vous préférez ajouter du code au fichier functions.php de votre thème, vous pouvez utiliser le code suivant à la place. Assurez vous de remplacer "yourdomain" avec le nom de domaine de votre site :

add_filter( 'before_rocket_htaccess_rules', '__fix_wprocket_non_www_redirection' );
function __fix_wprocket_non_www_redirection( $marker ) {
	$redirection = '# Redirect non-www to www' . PHP_EOL;
	$redirection .= 'RewriteEngine On' . PHP_EOL;
	$redirection .= 'RewriteCond %{HTTP_HOST} ^yourdomain\.com [NC]' . PHP_EOL;
	$redirection .= 'RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [L,R=301]' . PHP_EOL . PHP_EOL;
	$marker = $redirection . $marker;
	return $marker;
}

Désactivez / réactivez WP Rocket après avoir ajouté cela. 

S’il vous faut la règle opposée (www vers non-www) utilisez le code suivant :

<?php
defined( 'ABSPATH' ) or die( 'Cheatin\' uh?' );
/*
Plugin Name: Fix non-www Redirection with WP Rocket
Author: Jonathan (WP Rocket Team)
Author URI: http://wp-rocket.me
*/
add_filter( 'before_rocket_htaccess_rules', '__fix_wprocket_non_www_redirection' );
function __fix_wprocket_non_www_redirection( $marker ) {
	$redirection = '# Redirect non-www to www' . PHP_EOL;
	$redirection .= 'RewriteEngine On' . PHP_EOL;
	$redirection .= 'RewriteCond %{HTTP_HOST} ^www.yourdomain\.com [NC]' . PHP_EOL;
	$redirection .= 'RewriteRule ^(.*)$ http://yourdomain.com/$1 [L,R=301]' . PHP_EOL . PHP_EOL;
	$marker = $redirection . $marker;
	return $marker;
}

Et celui-ci au fichier functions.php:

add_filter( 'before_rocket_htaccess_rules', '__fix_wprocket_non_www_redirection' );
function __fix_wprocket_non_www_redirection( $marker ) {
	$redirection = '# Redirect non-www to www' . PHP_EOL;
	$redirection .= 'RewriteEngine On' . PHP_EOL;
	$redirection .= 'RewriteCond %{HTTP_HOST} ^www.yourdomain\.com [NC]' . PHP_EOL;
	$redirection .= 'RewriteRule ^(.*)$ http://yourdomain.com/$1 [L,R=301]' . PHP_EOL . PHP_EOL;
	$marker = $redirection . $marker;
	return $marker;
}

Désactivez / réactivez aussi WP Rocket après avoir ajouté ceci.