Scientific Linux6のapacheで、DocumentRootのDirectoryIndexだけ表示できなくて困った。サブディレクトリ以下のDirectoryIndexはきちんと表示されてるので何のことやらさっぱりだ。このSL6は仮想マシン上で動いてるのでパーミッションの問題にハマったのかと思いきや、デフォルトで用意されてるconfにそういう記述があるだけだった。
問題のconfはこれで、DocumentRootだけDirectoryIndexを許可しないようにしていた。
# /etc/httpd/conf.d/welcome.conf <LocationMatch "^/+$"> Options -Indexes ErrorDocument 403 /error/noindex.html </LocationMatch>
なぜこれがここにあるのかよくわからないので削除して見なかったことにした。
検証してないけどきっとCentOS6でも同じなのではないかと思われる。
apacheに限らず、設定ファイル全般はRHEL系よりDebian系、特にUbuntuがわかりやすくて整理されてる気がする。
そもそもなぜDirectoryIndexが必要かというと、主にPHP開発のとき、作業ディレクトリをDocumentRootにして、各プロジェクトはサブディレクトリでブラウザから見れるようにしてあるので、DocumentRootのDirectoryIndexはそのままプロジェクト一覧として使えるのです。