2016-04-10 51 views
0

我想在一个特定的目录中只能访问php的文件,具体的情况是,我有一个文件夹中有一些子文件夹,并且每个子文件夹包含很多文件(可以是每个类型的文件,如图像,代码,可执行文件等)。现在我建立了一个脚本,可以下载这些文件,但这些文件也可以直接到server.com/folder/subfolder/img.jpg来查看图像。这是我不想允许的。使文件只能访问php

有什么办法可以做到这一点? PS:我使用apache2和PHP7运行Ubuntu 14.04服务器。

编辑:问题可能是重复的,以链接的问题,但没有答案对我的作品,的.htaccess不会改变任何东西和文件夹应该保持它在哪里。

+2

可能的重复[如何使某些文件仅适用于PHP脚本?](http://stackoverflow.com/questions/5757510/how-do-i-make-certain-files-accessible-just-for -php-scripts) – Chris

+1

您尝试错误的方法。像这样的东西是不是由文件系统内部权限处理解决,这是不可能的。相反,您使用“路由器脚本”处理对任何此类文件的请求,而文件本身无法通过直接http请求_at all_访问。它们存储在发布的文件树部分之外。路由脚本可以使用你想要授权请求的whtever策略,然后通过首先发送适当的http头文件然后文件内容本身来“分发”文件。 – arkascha

+0

@arkascha为什么没有.htaccess文件与“拒绝所有”工作呢? – user5638730

回答

0

如果你想要使用文件系统来解决这个问题,你必须认识到你在系统方面有一些重大的限制。例如,您的PHP脚本无法像Apache一样运行,因此无法在Apache中运行。

如果这是一个困难的要求,我会做的第一件事是通过fcgi守护进程而不是Web服务器运行PHP脚本,让它们作为单独的用户运行,并相应地收紧文件权限。