先ほど、いつものようにWordPressにログインしようとすると真っ白な画面にエラーメッセージが表示され、ログインできなくなっていました。
相当ビビりましたが簡単に解決できたので、対処法を取り急ぎですがメモしておきます。
ちなみにこんなエラーメッセージでした。
とりあえず落ち着いてエラーメッセージを見てみよう
Notice: Use of undefined constant HTTPS - assumed 'HTTPS' in /home/...hogehoge.../wp-content/plugins/siteguard/classes/siteguard-rename-login.php on line 106
Notice: Use of undefined constant HTTPS - assumed 'HTTPS' in /home/...hogehoge.../wp-content/plugins/siteguard/classes/siteguard-rename-login.php on line 106
Warning: Cannot modify header information - headers already sent by (output started at /home/...hogehoge.../wp-content/plugins/siteguard/classes/siteguard-rename-login.php:106)
in /home/...hogehoge.../wp-includes/pluggable.php on line 1216
とりあえず最初のエラーを見てみると、「Use of undefined constant HTTPS」と書いてあります。
つまり、「HTTPS
という定数なんて定義されてませんよ」ってエラーですね。
どこでエラーが起きているのかも書かれています。
.../wp-content/plugins/siteguard/classes/siteguard-rename-login.php on line 106
siteguardプラグインの中の、「siteguard-rename-login.php」というファイルの106行目ですね。
ということはこの部分を修正すれば良いわけです。
該当ファイルを修正する
「siteguard-rename-login.php」をFTPソフトなどでダウンロードして、中身を見てみましょう。
104行目からhandler_wp_redirect
という関数が定義されており、以下のようになっています。
function handler_wp_redirect( $link, $status_code ) {
if ( ( ( strlen( $link ) <= 5 || 'http:' !== strtolower( substr( $link, 0, 5 ) ) ) && ( strlen( $link ) <= 6 || 'https:' !== strtolower( substr( $link, 0, 6 ) ) ) )
|| ( isset( $_SERVER[HTTPS] ) && strtolower( $_SERVER[HTTPS] ) !== 'off' && 'https' === strtolower( substr( $link, 0, strpos( $link, '://') ) ) )
|| ( ( ! isset( $_SERVER[HTTPS] ) || strtolower( $_SERVER[HTTPS] ) === 'off' ) && 'http' === strtolower( substr( $link, 0, strpos( $link, '://') ) ) ) ) {
$result = $this->convert_url( $link );
} else {
$result = $link;
}
return $result;
}
106行目、107行目に犯人がいましたね。$_SERVER[HTTPS]
という記述が4回ほど出てきています。
これはおそらく$_SERVER['HTTPS'}
と、HTTPSをクオーテーションで囲むべきでしょう。
すげー凡ミスです。笑
$_SERVER[HTTPS]
を$_SERVER['HTTPS']
と書き換え、FTPなどで再アップロードします。もちろん上書きしましょう。
これで私は解決しました!
自動アップデートも考えものですね
おそらく、SiteGuard WP Pluginが自動アップデートした際に発生したエラーだと思います。
私は手動でアップデートするのが面倒なのでプラグインを自動アップデートする設定にしていたのですが、これからは少し慎重に設定すべきかな、と思いました。
それにしてもいい迷惑です!
ちなみに、自動アップデートの設定方法は以下の記事にメモしているので気になった方はぜひ参考にしてみてください。(今回のような唐突なエラーに遭遇するかもしれないので、頻繁に自分で更新するサイトだけに設定しておきましょう)
コメント
コメント一覧 (1件)
siteguard-rename-login.php on line 106 でエラーになり検索してこのサイトにたどり着けました。
参考にして修正したらログインできました。
ありがとうございました!!