使用htaccess安全下载目录

时间:2012-08-26 13:05:26

标签: apache .htaccess

我为其他人创建了一个axtra ftp帐户,因此他可以上传文件。(锦标赛结果,大约20/30 htm文件和图片) 我也非常偏执,所以如果他上传“可能危险”的文件,我不希望通过http请求访问这些文件。在PHP的帮助下,我想获取这些文件的内容。 (我不认为有麻烦)

问题: 我的主机不允许额外的ftp帐户访问public_html之外。 所以我认为htacces应该解决我的问题。只是否认所有规则。 但是使用ftp access,可以删除或更改此htaccess文件。

所以我尝试在我的网站根目录中的主htacces文件中添加以下代码:

<Directory "/home/xxxx.nl/public_html/xxxxxxxx.nl/onzetoernooien/swissmaster_ftp">
deny from all
</Directory>

我的网站因内部服务器错误而挂起。 我无法访问httpd文件。

我的想法是在此目录上方使用htacces文件。 如果绝对路径不正确,我可以使用某种通配符,如* swissmaster?

我在Apache网站上搜索过,但是我在大量的信息中迷失了。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

不幸的是,您不能在.htaccess中使用<Directory>部分,只能在服务器配置文件中使用。这会导致服务器错误(检查错误日志,您将看到错误消息)。我们无法保护带有<Filesmatch "subdir/.*$">的子目录,因为FilesMatch仅检查所请求URI的文件名部分。

但是,你可以按照以下几行使用mod_rewrite:

RewriteEngine on

RewriteRule ^subdir.*$ - [NC,F]

如果请求的URI与正则表达式模式subdir.*匹配(所以“subdir”后跟其他任何内容;您可能需要调整模式,因为它也很乐意捕获subdir_new / something.txt - 我确定你明白了,然后mod_rewrite的F flag将返回403 Forbidden状态(NC代表No-Case,使模式不区分大小写)。