本記事では、
URLからディレクトリ階層にアクセスした際に表示される、
index ofページを表示させなくする手順を解説していく。
セキュリティ的にindex ofページは表示させない方が良いとされている。
Index ofページとは、、
index of ページとは、
ブラウザからディレクトリ階層にアクセスした際に表示される、ディレクトリ内の一覧ページのことだ。Indexページがその階層に設置されていないと表示される。
index of ページに一覧表示されているディレクトリやファイルはリンクになっており、
セキュリティの観点から、このページは見せないようにするのが好ましい。
なので、今回は、index ofページを表示させなくする方法を調べてみた。
Index of ページを非表示にする手順
Index ofページを非表示にするには、
結論から言うと以下を実行するだけで良い。
httpd.confの、
<Directory></Directory>セクションから、
「Indexes」の記述を削除する。
具体的に手順を説明していく。
httpd.confを編集
まずはhttpd.confを適当なエディタで開く。
vi httpd.conf
そうしたら、Index ofページを表示させたくないディレクトリのセクションを見つける。
ディレクトリのセクションとは、<Directory></Directory>で囲まれている、エリアのことだ。
# httpd.conf
<Directory "/usr/local/var/www"> # /usr/local/var/www セクション始まり
#
#
#
#
#
Options Indexs FOllowSymLinks
#
#
</Directory>
下記は筆者のローカルPCのドキュメントルート(/usr/local/var/www/)のセクション部分
下記セクションの赤枠で囲ってある部分、
「Options Indexes followSymLinks」の「Indexes」の部分を削除すればOK。
↓
設定を保存して、apache再起動
Indexsを削除できたら保存して、apacheを再起動する。
service httpd restart
ディレクトリへブラウザからアクセス
apacheを再起動できたら、
再度ブラウザから、先ほど設定を変更したディレクトリへアクセスしてみてほしい。
筆者の場合、ドキュメントルートなので「localhost:8080/」にアクセス、すると
Index ofページが表示されなくなった。
代わりに「Forbidden(不許可)」って怒られてる。
Indexesを消したのが効いているのがわかる。
一覧ページが表示されなくなった。
さくらのレンタルサーバだと
このブログはさくらのレンタルサーバで運用しているが、
同じようにディレクトリにアクセスしてみると、、
同じ画面が出た、まあやってることは正しいってことでいいのかな?
ちなみに、セクションの有効範囲
余談だが、
ディレクトリセクションで指定した設定は、サブディレクトリ全体へと効果が及ぶ。
つまり今回はドキュメントルートのディレクトリに、Indexを見せないという設定をしたが、この設定はサブディレクトリ全てに受け継がれるため、実質外部からのアクセスではどのディレクトリにアクセスしたとしても、Index ofページを見ることはできないということになる。
ディレクトリセクションで指定した設定は、サブディレクトリ全体へと効果が及ぶ。
試しにサブディレクトリの「localhost:8080/rpg/」にアクセスしてみる
同じ結果になった。
上位階層の設定が、下位階層へ同様に適用されているのが確認できる。
関連記事
https://httpd.apache.org/docs/2.4/configuring.html
Options Indexes FollowSymLinks
↓
Options FollowSymLinks
としても、Index ofページが表示できてしまいます
本当ですか、、それだけ言われても原因はわかりかねますが、以下ご確認ください
① apacheの再起動は実施しましたか?
② Directoryに記載のパスは合っていますか?