wordpressをhttpsにしたらjsが効かなくなった件


このサイトはさくらのレンタルサーバー、スタンダードでTwenty Seventeenをベースに作っていますが、スマホサイトではいつの間にかメニューボタンをクリックしてもトグルが開かなくなりました。

httpで実験してみると正しく動作。しかしhttpsにするとトップページではトグルが開くものの、それ以外のページではトグルが開かない。
どうやらjsが効かなくなった様子。
なにが原因か分からないのでFirefoxのF12をクリックし、コンソールで調べてみると、混在アクティブコンテンツが原因で、httpsにしたらhttpのjsは読み込んでないことが分かりました。

インターネットでも同じような問題が多数報告されており、Real-Time Find and Replaceというプラグインでhttpをhttpsとして読み込んでくれるプラグインがあることが分かったのでインストールしてみました。
すると、インストールしただけでトグルが開くように。コンソールで調べてみると、きちんと読み込んでくれてました。
しかし、httpの普通のリンクもhttpsにしてリンクしてしまう欠点を発見。これではリンクできません。

また別な方法を探してみると、コードを追加することで解決できることが分かりました。
wp_config.phpのソースの頭に下記コードを載せること。


if( isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']) ) {
    $_SERVER['HTTPS'] = 'on';
    $_ENV['HTTPS'] = 'on';
}

【参考サイトその1】
https://ri-c.co.jp/%E3%81%95%E3%81%8F%E3%82%89%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88-%E3%83%A9%E3%83%94%E3%83%83%E3%83%89ssl%E3%83%BBwordpress%E3%81%A7%E5%9B%B0%E3%81%A3%E3%81%9F%E3%81%93/

【参考サイトその2】
https://www.harukas.org/blog/2353/

今度こそエラーが出ることなく、サイトが運営できるようになりました。

コメントを残す

メールアドレスが公開されることはありません。

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください