除了子目录中的1个文件外,如何阻止目录中的所有文件?

时间:2016-05-26 18:44:22

标签: .htaccess

以下是我的目录树的示例:

private-folder/
├── .htaccess
├── foo
│   ├── secret-codes.json
│   └── secret-ruby.rb
└── bar
    ├── snafu
    │   ├── proxy.php
    │   ├── client.php
    │   └── testdata.xml
    ├── config-file.php
    ├── secret-access.php
    ├── PUBLIC-ACCESS-FILE.php
    └── top-secret.php

除了标有PUBLIC-ACCESS-FILE.php

的文件外,我希望隐藏所有文件

这是我的htaccess:

Order deny,allow
Deny from all

<Files "/bar/PUBLIC-ACCESS-FILE.php">
    Allow from all
</Files>

这不起作用,因为文件仍然显示403.有没有办法可以在一个文件中完成所有操作?设置它的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以将mod_rewrite与两条规则一起使用。第一个允许PUBLIC-ACCESS-FILE.php,第二个规则隐藏其他所有内容

RewriteRule ^bar/PUBLIC-ACCESS-FILE.php$ - [L]
RewriteRule ^ - [R=404]