使用htaccess保护底层目录



我为其他人创建了一个axtra ftp帐户,这样他就可以上传文件了。(锦标赛结果,约20/30 htm文件和图像)我也很偏执,所以如果他上传了"可能危险"的文件,我不希望通过http请求访问这些文件。在PHP的帮助下,我想获取这些文件的内容。

问题:我的hoster不允许额外的ftp帐户访问public_html之外的内容。所以我认为htaces应该解决我的问题。只要拒绝一切规则。但是通过ftp访问,这个htaccess文件可以被删除或更改。

因此,我尝试在我的站点根目录中的主htacces文件中添加以下代码:

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

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

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

我在Apache网站上搜索过,但我迷失在铺天盖地的信息中。

提前感谢您的帮助!

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

但是,您可以使用mod_rewrite,如下所示:

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

如果请求的URI与正则表达式模式subdir.*匹配(所以"subdir"后面跟着其他任何东西;你可能需要调整模式,因为它也很高兴地捕捉到subdir_new/msomething.txt——我相信你已经明白了),那么mod_rewrite的F标志将返回403 Forbidden状态(NC代表无大小写,使模式不区分大小写)。

最新更新