Actuellement, toutes les pages https ont leurs propres balises canoniques référençant https, ce qui est incorrect, elles devraient référencer les versions http.
par exemple:
https://www.example.com
a la balise canonique suivante:
<link rel='canonical' href='https://www.example.com' />
Comment pouvons-nous faire en sorte que les balises canoniques des pages https utilisent les URL http?
Vous pouvez le changer en utilisant le code suivant, ajoutez-le dans votre thème function.php ou dans le plugin.
remove_action ( 'wp_head' , 'rel_canonical' ) ;
add_action ( 'wp_head' , 'my_rel_canonical' ) ;
function my_rel_canonical () {
ob_start () ;
rel_canonical () ;
$rel_content = ob_get_contents () ;
ob_end_clean () ;
echo str_replace ( "https:" , "http:" , $rel_content ) ;
}
Prévoyez-vous d'utiliser le canonique pour éviter les doublons de contenu dans Google? Je crois que c'est une mauvaise approche. Vous devez éliminer le contenu dupliqué en redirigeant les pages 301 vers le modèle approprié, SSL ou non-SSL, en fonction du contenu (extraction, connexion, administrateur). Et ne pas utiliser le canonique.
Edit: est-ce que je viens de répéter ce que vous avez dit plus tôt? https://webmasters.stackexchange.com/a/49852
La manière dont https est implémenté est correcte. Si vous forcez http sur https, vos clients verront un avertissement indiquant que le site contient un contenu non sécurisé. Pourtant, si vous voulez le faire, il y a 2 façons:
En utilisant un filtre personnalisé dans wordpress pour changer toutes les URL à la volée.
function custom_force_http( $force_http, $post_id = 0, $url = '' ) {
return str_replace ( "https:" , "http:" , $force_http) ;
}
add_filter('force_http' , 'custom_force_http', 10, 3);