先ほど、いつものようにWordPressにログインしようとすると真っ白な画面にエラーメッセージが表示され、ログインできなくなっていました。

相当ビビりましたが簡単に解決できたので、対処法を取り急ぎですがメモしておきます。

ちなみにこんなエラーメッセージでした。

sitegurdのエラーでログインできない!

 

目次

とりあえず落ち着いてエラーメッセージを見てみよう

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が自動アップデートした際に発生したエラーだと思います。

私は手動でアップデートするのが面倒なのでプラグインを自動アップデートする設定にしていたのですが、これからは少し慎重に設定すべきかな、と思いました。

それにしてもいい迷惑です!

ちなみに、自動アップデートの設定方法は以下の記事にメモしているので気になった方はぜひ参考にしてみてください。(今回のような唐突なエラーに遭遇するかもしれないので、頻繁に自分で更新するサイトだけに設定しておきましょう)

WordPressのバージョンアップデートやプラグインアップーデートの自動更新・自動配信メールに関する設定方法WordPressのバージョンアップデートやプラグインアップーデートの自動更新・自動配信メールに関する設定方法
- Thank you for reading. -

あなたの1クリックが励みになります\( ̄ー ̄)/

コメント

  • satodate より:

    siteguard-rename-login.php on line 106 でエラーになり検索してこのサイトにたどり着けました。
    参考にして修正したらログインできました。
    ありがとうございました!!

コメントする

CAPTCHA


TOPへ Top