WordPress Tips

403エラーでWordPressにログインできなくなった時の対処法

本記事にはプロモーションが含まれています。

403エラーでWordPressにログインできなくなった時の対処法

WordPressにログインしようとしてwp-adminやwp-login.phpにアクセスしたら、403エラーが表示されてログインできない!となったことはありませんか?

というのもつい最近、403エラーに遭遇してWordPressにログインできない事態になりました。原因はWordPressに入れていたセキュリティプラグインAll in one Securityに締め出されてしまったのが原因だったのですが。

この記事では、403エラーが起きる原因と対処法、セキュリティプラグインによってログインできない状態になってしまった時の解決方法も併せて解説します。

403エラーの意味

403エラーは、HTTPステータスコードの一つで、「Forbidden(禁じられている)」を意味します。このエラーは、ユーザーがリクエストしたウェブページなどにアクセスする権限がない場合に表示されます。

403エラーが起きる原因

403エラーは、サーバーに設置したファイルやプログラムが原因でおきる場合とサーバーの機能によって起きる場合があります。主な原因を挙げてみます。

設置したファイルやプログラムによるエラー

  • .htaccessの問題
  • ファイルのパーミッション(アクセス権限)の問題
  • セキュリティプラグインによる問題

サーバーによるエラー

  • WAFの誤検知
  • 海外アクセスの制限
  • サーバー会社による制限(未払いによる凍結など)

ひとつずつ詳しく見ていきます。

.htaccessファイルの問題

.htaccessに間違った記述があると403エラーになってしまいます。自分ではいじった記憶がない・・・という場合は不正アクセスの可能性も。

以下のような手順で、WordPressのルートディレクトリにある.htaccessを一旦削除して、正常にアクセスできるか確認してみます。

  1. WordPressのルートディレクトリにある.htaccessをローカルPCなどにバックアップする
  2. .htaccessを削除する
  3. ブラウザからWordPressにアクセスできるか確認する
  4. もし403エラーが解消されたら、.htaccessを再生成する
  5. 再度サイトが正常になったかテストする

.htaccessが原因のエラーだった場合、もとの.htaccessを設置してもまたエラーになってしまうので、WordPressのパーマリンクから.htaccessを生成します。

  1. WordPressの管理画面にログインし、「設定」メニューから「パーマリンク」を選択。
  2. 何も変更せずに、「保存」をクリック。
  3. WordPressが新しい.htaccessを生成します。

または、FTPやファイルマネジャーから手動で.htaccessを設置します。.htaccessに記述するのは以下の内容です。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

WordPressで生成される.htaccessの内容以外に、独自のカスタマイズを加えている場合は、バックアップした.htaccessを確認して必要なものを新しい.htaccessにも記述する必要があります。

ファイルのパーミッション(アクセス権限)の問題

WordPressを構成するPHPファイルやディレクトリのパーミッションが正しくない場合、403エラーになることがあります。

下記は一般的なWordPressファイル、ディレクトリのパーミッションです。使用しているレンタルサーバーでも確認してみてください。

ファイル・ディレクトリパーミッション
WordPressインストールディレクトリ
(通常はpublic_htmlまたはhtdocs)
755
php ファイル wp-から始まるファイルなど644
wp-content755
wp-content/themes755
wp-content/plugins755
wp-content/uploads755
必要に応じて書き込み可能にするため777の場合も

FTPクライアントやファイルマネージャーでサーバーへアクセスして、パーミッションを確認・変更します。

またはAll In One WP SecurityやWordfenceなどセキュリティプラグインを使ってファイル・ディレクトリのパーミッションを推奨値に確認変更することもできます。

All In One WP Security File securityのファイルパーミッションの設定画面

セキュリティプラグインによる問題

セキュリティプラグインには、WordPressのセキュリティを向上させてくれるさまざまな設定があります。しかし、これらの設定を間違えると、正当なアクセスもブロックされてしまう可能性があります。例えば、IPアドレスのブロック、不正アクセスの検出、特定のパスへのアクセス制限などの設定が誤っている場合、正常なユーザーでもアクセスが制限されてしまいます。

参考記事WordPress 初心者でもすぐにできるセキュリティ対策

  1. まず、使用しているセキュリティプラグインを一時的に無効化します。
  2. セキュリティプラグインが無効の状態で403エラーが解消されているか確認します。
    エラーが解消されていればセキュリティプラグインが原因であることになります。
  3. セキュリティプラグインの設定確認し、修正します。
  4. セキュリティプラグインを再有効化します。
  5. エラーが発生しないか再度確認します。

セキュリティプラグインを一時的に無効にする方法

403エラーでWordPressにログインできない状態ではFTPでサーバーにアクセスし、wp-content/pluginsディレクトリへいき、セキュリティプラグインのディレクトリ名を変更します。

All in one securityの名前を変更します。変更する名前はなんでもよい。

この状態でWordPressにログインできるかどうか確認し、ログインできればエラーの原因はセキュリティプラグインになります。セキュリティプラグインに限らず、プラグインがエラーの原因である可能性はプラグインを一つ一つ無効にしてエラーが解消されるか確認します。

セキュリティプラグインの設定確認

WordPressにログインできたら、無効になっているセキュリティプラグインを再度有効化して、設定を確認します。

403エラーを引き起こすのは、
IPブロックや不正アクセス防止などの項目が原因の場合が多いです。

All In One WP Securityの設定

私がAll In One WP Securityから締め出されてしまった時は、ログインIPアドレスをホワイトリストで設定していて、固定IPアドレスが変わったのを登録しないままにしてしまったためにログインできない状態でした。

総当たり攻撃(Brute force)」の「ログインホワイトリスト」でIPアドレスを登録します。ここに登録したIPアドレスからのみログインできるようになります。

All In One WP SecurityのログインIP ホワイトリスト機能によってロックアウトされて、固定IPアドレスを持っていない場合、以下の定数をwp-config.phpに記述してログインホワイトリストを無効にできます。

define('AIOS_DISABLE_LOGIN_WHITELIST', true);

似た項目で「User Security」の「Login Lockout」タブの中に、「Login Lockdown IP ホワイトリスト設定」があります。この項目はログインを誤ってロックダウンする機能から除外するIPアドレスです。

WAFの誤検知

WAF(Web Application Firewall、ウェブアプリケーションファイアウォール)は、ウェブアプリケーションのセキュリティを強化するためのツールで、不正なトラフィックや攻撃からWordPressを保護する役割を果たします。

しかし正常なアクセスでもWAFが誤ってブロックしてしまいエラーとなってしまうことがあります。WAF機能を無効にしてエラーが解消するかを確認します。

  • WAF機能があるプラグイン
  • サーバーのWAF機能

WordPressにWAF機能があるプラグインをインストールしている場合は無効にしてみます。

セキュリティプラグインWordfenceのWAFにブロックされた画面

そのほかエックスサーバー ConoHa WINGなどではサーバーの標準機能としてWAFが提供されています。

エックスサーバー のサーバーパネル・WAF機能

ConoHa WINGのWAFではログを確認することができるので、自分のアクセスがWAFにブロックされているかを確認することができます。参考ConoHa WINGでWAFを無効にする方法

海外アクセスの制限

WordPressへの攻撃は海外から攻撃されることが多いため、レンタルサーバーではセキュリティ対策として海外からWordPressへのアクセスを制限する機能がある場合があります。

海外からのアクセスを制限する設定が有効になっている場合、海外からWordPressにアクセスしようとすると、サーバーはそのアクセスを拒否し、403 Forbiddenエラーが表示される可能性があります。

エックスサーバー WordPressセキュリティ設定

サーバー会社による制限(未払いによる凍結など)

サーバー契約更新を忘れてしまって、未払いの状態になってしまうとサーバー会社はサービスの提供を一時的に停止することがあります。

このようなサーバー契約を凍結されるとサーバーは403 Forbiddenエラーを返すことがあります。

これはめったにないことですがありえる話。先に述べたエラー原因がどれも当てはまらなかったら、サーバー契約が有効な状態かを確認してみてください。

まとめ

403エラーは、ウェブサーバーがリクエストを受け取ったものの、アクセス権限がないためにリソースにアクセスできない場合に発生します。

原因としては、.htaccessファイルの問題、ファイルのパーミッション(アクセス権限)の不足、セキュリティプラグインの制限、WAF(Web Application Firewall)の誤検知、さらには海外からのアクセス制限やサーバー会社による未払いによる凍結などが考えられます。

WordPressで403エラーが発生してしまった場合は、慌てずこれらの要因を確認し、適切に対処することが重要です。

今月キャンペーン特典があるサービス

  • エックスサーバー
    利用料最大30%キャッシュバッグ月額693円&ドメイン永久無料 - 2024年5月1日(水)12:00まで
  • ConoHa WING
    WINGパック36ヶ月で月額678円 53%OFF ドメイン2個無料 - 2024年4月19日(金)16:00まで
  • カラフルボックス
    ドメイン永久無料特典とBOX2以上の月額費用が50%OFFのクーポンコード「SERVER50

-WordPress Tips
-, ,