プロクラ(クラウドAIロボット、詳しい役)SabaKore

よくある質問

403 Forbiddenが出るとき:見せない設定と、見せられない状態

2026年8月20日

この記事はAIが下書きを作成しています。内容に誤りに気づいた場合はお問い合わせよりお知らせください。

レン(新米インフラエンジニア)・調べ中

レン

ファイルは置いたはずなのに、403 Forbiddenって出る…
プロクラ(クラウドAIロボット、詳しい役)・教える

プロクラ

403は「そこにあるかもしれないが、見せない」という応答だよ。404の「無い」とは違う。だから、置き場所は合っている可能性が高いんだ。

開ける入口は、使うものだけ

22SSH接続元を絞る
80Web公開するなら
443Web(暗号化)公開するなら
3306データベース外に出さない
その他既定で閉じる

「全部閉じてから、必要な分だけ開ける」が基本。SSHを閉じる前に自分の接続を確認

原因は大きく3方向

  • 権限: Webサーバーがそのファイルを読めない
  • 設定: そのパスへのアクセスを禁止している
  • 索引: ディレクトリを開いたが、表示すべきファイルが無い

1. 権限を疑う

プロクラ(クラウドAIロボット、詳しい役)・分析中

プロクラ

Webサーバーは、キミとは別のユーザーとして動いている。だから、キミが読めるファイルでも、Webサーバーが読めるとは限らない。
  • ファイル自体の権限(読めるようになっているか)
  • そのファイルまでの、すべての親ディレクトリの権限
  • 所有者とグループが、Webサーバーの実行ユーザーと噛み合っているか
プロクラ(クラウドAIロボット、詳しい役)・困った

プロクラ

見落とされやすいのが2つめだよ。ファイルの権限が正しくても、途中のディレクトリが通れなければ届かない。ディレクトリは「中を通る」ための権限が別に必要なんだ。
プロクラ(クラウドAIロボット、詳しい役)・OK

プロクラ

ここで「とりあえず777にする」のはやめよう。誰でも書き込める状態を作ることになる。直すべきは所有者のほうだよ。

2. 設定を疑う

  • 設定ファイルで、そのパスへのアクセスを拒否していないか
  • 接続元IPで制限をかけていないか(自分の回線のIPが変わった可能性)
  • 特定の拡張子を配信しない設定になっていないか
  • WordPressなどのアプリ側で、追加の制限をかけていないか

3. 索引ファイルが無い

プロクラ(クラウドAIロボット、詳しい役)・教える

プロクラ

ディレクトリを指定して開いたとき、Webサーバーはその中の決められた名前のファイルを探す。それが無いと、中身の一覧を出すか、403を返すかのどちらかになる。既定では一覧を出さない設定になっていることが多いよ。
ウィルスン(セキュリティの番人)・ニヤリ

ウィルスン

…ちなみに、一覧が出る設定のほうは、ワタシにとって親切な作りだ。置いてあるファイルが全部見えるのだからな。403のままにしておくほうが賢明だぞ。
プロクラ(クラウドAIロボット、詳しい役)・分析中

プロクラ

そのとおりで、一覧表示を有効にして解決するのは筋が悪い。表示したいファイルを正しい名前で置くか、そのパスを使わないようにするのが本筋だよ。

確かめ方

  • エラーログを見る。403の理由は、たいてい1行で書かれている
  • 権限が原因なら「Permission denied」が併記される
  • 設定が原因なら、どのルールに当たったかが分かることがある
  • ログを見ずに設定を触ると、直ったのか別の理由で変わったのか分からなくなる
レン(新米インフラエンジニア)・できた

レン

「無い」んじゃなくて「見せない」。だから置き場所は合ってるんだね。

あわせて読みたい

→ コラム記事をすべて見る(カテゴリ・事業者で絞り込めます)

サーバーを触る前に押さえておきたいこと

姉妹サイトの、この記事と相性のいいページです。