Gegenwärtig haben alle https-Seiten ihre eigenen kanonischen Tags, die auf https verweisen, was falsch ist. Sie sollten auf die http-Versionen verweisen.
z.B:
https://www.example.com
hat den folgenden kanonischen Tag:
<link rel='canonical' href='https://www.example.com' />
Wie können wir dafür sorgen, dass die kanonischen Tags auf https-Seiten die http-URLs verwenden?
Sie können es mit folgendem Code ändern, in Ihrer theme function.php oder im Plugin hinzufügen.
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 ) ;
}
Planen Sie die Verwendung von Canonical, um doppelte Inhalte in Google zu vermeiden? Ich glaube, es ist ein falscher Ansatz. Sie sollten den doppelten Inhalt beseitigen, indem Sie die Seiten 301 an das richtige Schema weiterleiten, entweder SSL oder Nicht-SSL, je nach Inhalt (Auschecken, Anmelden, Administrator). Und nicht mit dem Kanonischen.
Edit: habe ich gerade das wiederholt, was du vorher gesagt hast? https://webmasters.stackexchange.com/a/49852
Die Implementierung von https ist korrekt. Wenn Sie http auf https erzwingen, wird Ihren Kunden eine Warnung angezeigt, dass die Site unsicheren Inhalt hat. Wenn Sie es dennoch tun möchten, gibt es zwei Möglichkeiten:
Verwenden eines benutzerdefinierten Filters in WordPress, um alle URLs im laufenden Betrieb zu ändern.
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);