【記事内に広告が含まれる場合があります】
今日、ブログ記事を書こうと思って、ワードプレスを開いたら
Forbidden
You don’t have permission to access this resource.
という表示が出て、何も操作できなくなりました。
ログイン自体はできたのですが、その後のダッシュボードの画面がこんな感じ↑でいつもと違くて、投稿などのメニューを押すと、Forbiddenのエラー表示が出てくるという。
他で同じサーバーに入れて運営しているサイトを見ても、どのブログでも同じエラーになっていました。
だいぶ焦りましたね。。
とはいえ、復旧しないとさすがにやばかったので、いろいろ調べてやったらなんとか解決しました。
ということで、今回は、WordPressで急に403Forbiddenになったときの対処法をシェアしていきます。
ちなみに、エラー発生時に使っていたサーバーはConoha WINGでした。
WordPressの403エラー解決までに実際にやったこと
結論から言うと、.htaccessファイルを修正したら、403エラーがなくなり、これまで通り使えるようになりました。
正常に動いていたときの.htaccessファイルの中身は
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
だったのですが、403エラーになったときは、こんな感じで上のほうによくわからない文字列が追加されていました。
<FilesMatch “.(py|exe|php)$”>
Order allow,deny
Deny from all
</FilesMatch>
<FilesMatch “^(about.php|radio.php|index.php|content.php|lock360.php|admin.php|wp-login.php)$”>
Order allow,deny
Allow from all
</FilesMatch>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
なので、上の部分の
<FilesMatch “.(py|exe|php)$”>
Order allow,deny
Deny from all
</FilesMatch>
<FilesMatch “^(about.php|radio.php|index.php|content.php|lock360.php|admin.php|wp-login.php)$”>
Order allow,deny
Allow from all
</FilesMatch>
を丸ごと消したら、エラーが解除され、今まで通り動くようになりました。
Conoha WINGを使っている場合は、以下の手順で対応できます。
ログインして、該当のドメインを選び、
「サイト設定」→「応用設定」→「.htaccess設定」
にある「.htaccess」の部分から鉛筆マークを選ぶと編集できます。
不要な部分を削除して
「保存」ボタンを押しましょう。
保存して、不要な部分がなくなっていればOKです。
これで正常にダッシュボードを使えるようになります。
もし、同じ作業をやるときは、必ずバックアップを取ってからやってみてください!
WordPressで403Forbiddenになった原因
では、なぜ急に403エラーになったのか?
はっきりした原因はわからないのですが、おそらく何らかのウイルスによるものみたいでした。
いずれにせよ、セキュリティが甘かったことが要因の一つではあると思うので、
- ユーザー名・パスワードはできるだけ難しいものにする
- セキュリティ系のプラグインを導入する
- PCのウイルス対策ソフトを入れる
などをして、セキュリティやウイルス対策は万全にしておくことが超重要ですね。
詳しい原因と対策は、サーバー会社にも聞いているので、もし詳細がわかったらまた追記しておきます!