你在这里

限制公众下载特定的文件夹(通过的。htaccess)

原文链接:http://drupal.org/node/540754

 

如果设置了“公”的下载方法,你仍然可以保护。htaccess文件中设置一些文件夹,如果您有启用了mod_rewrite。

举例来说,如果你的文件,住在网站/默认/文件,你要保护的网站/预设/文件/ protected_download_dir的一切,那么你可以添加以下行到中央htaccess文件。

<font style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; font-size: 12px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; vertical-align: baseline; background-position: initial initial; background-repeat: initial initial; "><font style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; font-size: 12px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; vertical-align: baseline; background-position: initial initial; background-repeat: initial initial; ">的RewriteRule ^ \ /默认网站\ /文件\ /(protected_download_dir \ / *)$ index.php的?Q =系统/文件/ $ 1 [L,QSA的]</font></font>

在此文件夹中的文件(或正则表达式匹配的所有文件)将不会被直接送达由Apache,但请求使用的file_download的()回调一个完整的Drupal。路由系统/文件定义在system_menu()。

。htaccess的故障排除

书面htaccess文件时也有一些缺陷:你需要编写正确的正则表达式语法,你需要摆脱东西,如斜杠(“\ /”)和点(“\。”),你需要不同的规则之间的换行符,您可能需要每个规则的具体RewriteCond报表,您需要正确的apache的配置等。

如果您有什么要分享您的htaccess配置,请这样做!

文件下载访问检查

模块可以做访问检查上通过file_download()下载的文件,通过实施hook_file_download()。

例如,FileField字段模块将做检查为通过FileField字段上传的所有文件,您的访问。它只会给谁可以看到文件所属的节点和外地的人访问。

此外,您可以限制文件夹的名称或其他标准为基础的文件下载的模块。

访问检查与FileField字段内置

FileField字段模块具有内置的访问检查。为了使本使用,请

  1. 配置您要保护的FileField字段。使用FileField字段路径模块,定义FileField字段的默认存储文件应。
  2. 添加一行到你的。htaccess来保护这个文件夹中(见上文)。
  3. 使用任何模块,以限制节点或实地访问。

附加到节点的文件

如果你想保护上传的文件上传模块的核心,有一个在看私人上传模块

特定文件夹的权限

作为替代,你可以限制文件夹的访问Drupal的许可制度为基础,引进每一个文件夹的权限。有一个看看

典型滑通过考生

如果你想保护您的文件,你应该保持未受保护的文件可能有下列情形:

  • 缩略图图像(例如,那些与生成imagecache或ImageField的)通常比原来住在不同的目录。如果你想以及保护这些,你需要添加新的规则。htaccess文件。你甚至有可能必须安装额外的模块访问检查。
  • 进口目录如果您使用的进口添加您的文件,它可以发生,仍然是在进口目录的文件的副本。解决办法是手动清理的进口目录(通过FTP),或保护它的使用。htaccess的规则。
  • 孤儿档案FileField字段与节点删除有时,当你的文件仍然会存在,但它将不再FileField字段节点有任何关联。这可能发生,如果你的文件系统的权限不允许删除文件。因此,FileField字段的访问检查将不再适用于本文件。你需要找到(或代码)的一个新的模块,以保护这些文件,或你必须手动进行清理。