htaccess保护所有子文件夹&档

时间:2011-06-05 23:39:41

标签: .htaccess

我遇到这种情况:

/storage
  index.php
  other scripts.php
  /files  
    -files and folders-

我想拒绝对/files的所有文件和子文件夹的所有HTTP请求,但同时允许访问/storage并运行这些PHP脚本。我尝试了一些规则,但它们要么只保护文件列表,要么不允许访问所有/storage文件夹。

.htaccess必须在/files之外(因为此readfile访问此文件夹,并且可以访问.htaccess

2 个答案:

答案 0 :(得分:7)

在你的root .htaccess文件中,即在/storage目录下,输入以下行:

RewriteRule ^files/ - [R=404,L,NC]

这会将404抛给files/子目录下的所有HTTP请求,而.php文件将能够包含files/子目录下的文件。< / p>

答案 1 :(得分:0)

我认为在父目录中有这样的东西(你可能想要使用完整路径)

<Directory ./Files>
  ORDER DENY, ALLOW
  DENY FROM ALL
</DIRECTORY>

一般来说,我建议您只需将/ files目录放在文档根目录之外的某处以确保安全。这样,如果.htaccess意外关闭或损坏,你最终不会暴露文件。

编辑:

我很抱歉,<Directory>指令仅在服务器配置中有效(您需要将其放在httpd.conf文件或等效文件中),而不是在.htaccess中。如果您确定要放在目录中的文件类型,可以使用<Files>指令和各种文件类型:http://httpd.apache.org/docs/current/mod/core.html#files但是这需要放在Files目录。 (然后可能只是将它从PHP脚本中排除,尽管许多人已经忽略了隐藏文件)。