我需要做一个有点奇怪的手术。
首先,我在Debian apache2上运行(以用户www-data“运行”)
所以,我有.txt或.ini或任何扩展名的简单文本文件,都没有关系。
这些文件位于具有以下结构的子文件夹中:
www.example.com/folder1/car/foobar.txt www.example.com/folder1/cycle/foobar.txt www.example.com/folder1/fish/foobar.txt www.example.com/folder1/fruit/foobar 。文本
因此,文件名始终相同,即“层次结构”的同上,只需更改文件夹的名称:/folder-name-static/folder-name-dinamyc/file-name-static.txt
我应该做的是(我认为)相对简单:我必须能够通过服务器上的程序(例如python,php)读取该文件,但是如果我尝试通过浏览器(将网址www数字化)来检索文件内容。 example.com/folder1/car/foobar.txt,或通过cUrl等。)我必须收到一个禁止的错误,或其他任何错误,但不能访问该文件。
即使通过FTP访问这些文件也是“隐藏的”,或者无论如何都无法下载(至少我与ftp根目录和用户数据一起使用),这也很好。
我能怎么做?
我在网上找到了这个文件,放在文件.htaccess中:
<Files File.txt>
Order allow, deny
Deny from all
</ Files>
似乎可行,但前提是该文件位于Web根目录(www.example.com/myfile.txt)中,而不位于子文件夹中。此外,在第二级(www.example.com/folder1/文件夹水果 /foobar.txt)将dinamycally创建..我想,以避免随时更改.htaccess文件时间。
可以创建一条规则,适用于所有具有给定名称的文件,例如* www.example.com / folder-name-static / * folder-name-dinamyc / *** file-name -static.txt *,这些部分总是相同的,只是**那一个变化?
编辑:
正如Dave Drager所说,我可以简化一下,将那些文件保留在Web可访问目录之外。但是这些目录也将包含其他文件,图像以及我的用户使用的东西,因此我只是尝试不使用重复的文件夹系统,例如:
/var/www/vhosts/example.com/httpdocs/folder1/car/[other folders and files here]
/var/www/vhosts/example.com/httpdocs/folder1/cycle/[other folders and files here]
/var/www/vhosts/example.com/httpdocs/folder1/fish/[other folders and files here]
//and, then for the 'secrets' files:
/folder1/data/car/foobar.txt
/folder1/data/cycle/foobar.txt
/folder1/data/fish/foobar.txt