いくつかのサブフォルダーの下にある構成ファイルへのアクセスを拒否する必要があります。現在、私はこのルールを持っていますが、機能しません:
<Files ~ "((foo|bar))$">
Order deny,allow
Deny from all
</Files>
www.mysite.com/foo/foo2/file.xml
に移動すると、ファイルを表示できます。 foo
およびbar
へのすべてのファイルアクセスを再帰的に拒否する必要があります
[〜#〜] update [〜#〜]
この構成を試しましたが、内部エラーが発生します
<FilesMatch ".foo\.(*)$">
Order Allow,Deny
Deny from all
</FilesMatch>
ファイルディレクティブの代わりにlocationを使用してみてください:
<Location "path/to/folder-or-file">
Order Allow,Deny
Deny from all
</Location>
Apache構成内で正規表現のマッチングを行います。次に
<DirectoryMatch>
の代わりに<File>
を使用します(ディレクトリで正規表現を照合します)$
)正規表現を単純化する(括弧が多すぎる)
<DirectoryMatch "/path/to/toplevel/(foo|bar)">
Order deny,allow
Deny from all
</DirectoryMatch>
/path/to/toplevel/
は、foo
とbar
が存在するWWWディレクトリのファイルシステムの場所であることに注意してください。
ただし、.htaccess
のみを介して実行する場合は、拒否するeveryディレクトリ(foo、bar、foo/barなど)に.htaccess
ファイルを作成します。線を引く
Deny from all
内部。
「<Files>
[...]は、指定されたファイル名と一致するベース名(ファイル名の最後のコンポーネント)を持つすべてのオブジェクトに適用されます」。それはあなたが望むものではありません。
Directory*
.htaccess
では機能しません
mod_rewrite
を使用する必要があります。例えば:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(foo|bar) - [F]
</IfModule>