WordPressにアクセスできなくなる事象の経験談(htaccess勝手に変わる事件)
先日いきなりWordPressで運用しているウェブサイトへのアクセスができなくなりました。そのトラブルシューティングと調査の中から学んだことを記載していきたいと思います。
事象
以下のような事象が発生していました。
- 管理画面にアクセスできない(404 Forbidden)
- 記事が表示されない(403 Not Found)
- ページが表示されない(403 Not Found)
- トップページは表示される
原因
原因を先に述べますが、これが本当に直接的な原因だったか分かりません。
行ったことはhtaccessのファイル名を修正したことです。htaccessはhtaccessという拡張子の無名ファイルです。そのためサーバ上には「.htaccess」として保存される必要があります。
私の場合なぜかドットがない状態となっており修正したら事象解消に至りました。
これまで普通に運用していたのにドットが消えるのは正直謎です。
試したこと、プラグインの切り分け
プラグインの不備や脆弱性によってウェブサイトの表示を妨げる場合があるそうです。個々のプラグインのディレクトリの名前の頭にアンダスコアを入れるだけで起動されなくなるため、ひとつずつ無効化して悪いプラグインを探します。
試したこと、海外IPからの許可
お名前.comでは海外からの管理画面へのアクセスを禁止しており、許可する場合はhtaccessにコードを追加する必要があります。
<Files wp-login.php>
order allow,deny
allow from all
</Files>
<Files xmlrpc.php>
order allow,deny
allow from all
</Files>
私の場合後述しますが、WordPressが自動で書き換えてしまう部分に記載してしまった、もしくは、WordPressの更新でhtaccessそのものが置き換わったことにより、海外からのアクセスができなくなりました。
※私はこの時アメリカにいました。
試したこと、PHPログの確認
php.iniの内容を一部変更することでPHPのログを出力できます。その出力されたログを解析して原因を探ります。
学んだこと、htaccessの内容は勝手に変わる
WordPressの更新などでhtaccessの内容の一部が勝手に(自動に?)更新されます。
中身を見るとここからここまでがWordPressの内容だよと言うシャープの間は勝手に変わるので、自身で追加したい場合は、シャープで囲われた部分の外に書く必要があります。