photo credit: mlcastle via photopin cc
先日、いつも通りブログサイトとアンテナサイトの管理画面(WordPress)に入ろうとしたところ、「403 Forbidden」の文字が表示されて驚きました。心当たりがあるので平静を装いつつ、対処をすることに。
今回は実体験を交えて、WordPressの管理画面で「403 Forbidden」が表示された時に確認すべきことと、その対処方法をご紹介いたします。
「403 Forbidden」とは
まず、「403 Forbidden」について触れておきます。
ウェブにおける三桁番号403、またはエラーメッセージ”Forbidden”(英語では『(閲覧)禁止』)は、HTTPステータスコードの一つ。 ページが存在するものの、特定のアクセス者にページを表示する権限が付与されず、アクセスが拒否されたことを示すもの。 また、サイトの制作者側の設計ミスによる障害やサイトが非常に混雑している時、URLが間違っている場合にも表示される事がある。
wikiでは難しく記述されていますが、「403 Forbidden」とは、一言でいうと「ページを表示する権限がない」、ということです。
「403 Forbidden」が表示される理由
「403 Forbidden」が表示される理由をいくつか挙げていきます。
- サイトが非常に混雑している。
- 契約しているサーバーが有効でない。
- ルートディレクトリにデフォルトのファイルがない(index.html、index.htm、index.phpなど)。
- 「.htaccess」の書き込み権限などの設定をミスっている。
などが挙げられます。
確認と対処方法
1.に関しては、許されるなら時間が解決してくれるのを待ちましょう、そのうち解消されます。2.に関してはサーバー会社にお問い合わせください。
3.はサイトのルートディレクトリである「public_html」直下に「index.html、index.htm、index.php」などのファイルがあることを確認します。存在しない場合は作成します。
4.はサイト内のディレクトリにある「.htaccess」の書き込み権限が404になっていないかを確認します。404になっている場合は、FTPソフトなどで644にします。
「.htaccess」は下記の画像のようにチェックを入れると644になります。
私が「403 Forbidden」で管理画面に入れなかった理由
順を追って確認したところ、私のケースは上記で挙げたどのパターンにも当てはまりませんでした。
ここで冒頭の「心当たりがあるので」、が出てきます。私はグローバルIPアドレスを「.htaccess」に記述して管理画面の表示を自分以外できないように制限しています。
グローバルIPアドレスとは世界で一意のアドレスのことで、同じアドレスは複数のマシンへ付与はできません。ですので、自分のグローバルIPアドレスを使って制限をすれば自分以外は管理画面の表示をさせなくすることができます。
自分以外が管理画面へアクセスすると「403 Forbidden」が発生します。そうです、それが私が管理画面に入れなかった理由でした。
調べると自分に割り当てられている、グローバルIPアドレスがプロバイダによって変更されていました。
当然、管理画面にアクセスしようとすると「.htaccess」に記述したグローバルIPアドレスとは違いますので、「403 Forbidden」となります。
自分が気づけなかったこと
いつかグローバルIPアドレスが変更されることはわかっていたので、FTPソフトで「.htaccess」を開きアドレスを変更しようと思ったのですが、今度はFTPソフトでサーバーにアクセスしようとすると、「PWD: Permission denied」となり、サーバーにアクセスができませんでした。
これにはあせりました。サーバーにアクセスできなければ、「.htaccess」に記述してあるグローバルIPアドレスを変更することができません。
対処方法がわからなかったので、サーバー会社に問い合わせたところ。「.ftpaccess」が404になっていたとのことでした。「.ftpaccess」はFTPの接続元の制限などを行うことができます。
「.ftpaccess」が404になっていたので、サーバー会社に644にしていただき(助かりました)、サーバーにアクセスができるようになりました。
解決
「.htaccess」にアクセスし、グローバルIPアドレスを変更して、無事、管理画面を表示させることができました。
予断ですが「.htaccess」ファイルに下記のように記述して、WordPressのwp-adminディレクトリの直下に設置すれば、自分以外のアクセスを制限することができます。
order deny,allow deny from all allow from 自分のグローバルIPアドレス
まとめ
- サイトが混雑しているのか。
- 契約しているサーバーが有効か。
- ルートディレクトリにデフォルトのファイルがあるか(index.html、index.htm、index.phpなど)。
- 「.htaccess」の書き込み権限が404になっていないか。
- グローバルIPアドレスを「.htaccess」に記述して、管理画面のアクセス制限をしているときにグローバルIPアドレスが変わっていないか。
最後に、「.ftpaccess」が404になっていた理由は、おそらく「.htaccess」と同様、書き込めないようにしようとして「.ftpaccess」を「.htaccess」と見間違えて私が書き込み権限を404に変更したのだと思います。
コメント
助かりました。ありがとうございます。
匿名様 当サイトへお越しいただきありがとうございます。
記事がお役に立ち嬉しい限りです。