deny from allしたあとでDirectoryIndexな場合をallowする

例えば次のようなURLへのアクセス

 〜.com/foo/

このfooというディレクトリ内の.htaccessファイルを

#.htaccess

#とりあえずホワイトリスト方式
order allow,deny
deny from all

としたなら、当然、このアクセスはdenyされる。

allowしたいが、


  allow from all


  allow from all

これらは効果がない。


  allow from all

などとして調べていくと、どうやら親ディレクトリの名前にマッチするらしい。

つまり、

#.htaccess

#ホワイトリスト方式
order allow,deny
deny from all

#DirectoryIndexを許可する

  allow from all

となる。

この親ディレクトリ名はサーバ上のファイルシステムでのもの

よって次のようなURLへのアクセス

 〜.com/

これがサーバ上で

 /virtual/foouser/public_html/

となるなら、Filesはpublic_htmlという名前でマッチする。
.htaccess

#.htaccess

#ホワイトリスト方式
order allow,deny
deny from all

#DirectoryIndexを許可する

  allow from all

いずれの場合もmod_rewriteでは、

普通に

RewriteRule    ^$    -

でマッチする。


二時間弱ハマったのでメモしておく。