現在のところ、すべてのhttpsページにはhttpsを参照する独自の標準タグがありますが、これは正しくありません。httpsバージョンを参照しているはずです。
例えば:
https://www.example.com
以下の標準タグがあります。
<link rel='canonical' href='https://www.example.com' />
Httpsページの標準タグにhttp URLを使用させるにはどうすればよいですか。
次のコードを使って変更したり、テーマのfunction.phpやプラグインに追加することができます。
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 ) ;
}
Googleでコンテンツが重複しないようにするために、正規表現を使用しますか?それは間違ったやり方だと思います。コンテンツ(チェックアウト、ログイン、管理者)に応じて、301ページをSSLまたは非SSLの適切なスキームにリダイレクトして、重複するコンテンツを排除する必要があります。そして規範を使わない。
編集: あなたが以前に言ったことを繰り返しましたか? https://webmasters.stackexchange.com/a/49852
Httpsの実装方法は正しいです。 httpsにhttpを強制すると、サイトに安全でないコンテンツがあることを示す警告がクライアントに表示されます。それでもやりたいのであれば、2つの方法があります。
その場ですべてのURLを変更するためにwordpressのカスタムフィルタを使用する。
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);