使文件只能访问PHP

问题描述 投票:0回答:2

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

有什么方法可以做到这一点吗?

PS:我正在使用apache2和PHP7运行Ubuntu 14.04服务器。

编辑:问题可能与链接的问题重复,但没有答案适用于我,.htaccess不会更改任何内容,文件夹应保持原样。

php apache2 privileges access-control
2个回答
0
投票

如果您想使用文件系统解决这个问题,您必须认识到您在系统方面存在一些重大限制。例如,您的PHP脚本无法作为与Apache相同的用户运行,因此无法在Apache中运行。

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


0
投票

这样就可以了:

RewriteEngine On
RewriteBase /yourwebsite/

RewriteCond %{THE_REQUEST} /public/([^\s?]*) [NC]
RewriteRule ^ %1 [L,NE,R=302]

RewriteRule ^((?!public/).*)$ public/$1 [L,NC]

ErrorDocument 404 /yourwebsite/404.php

把它放在你的.htaccess中,当有人进入你的网站时,他们只会看到公共文件夹中的内容,但公共文件夹外的所有内容仍然只能通过php访问图像,而且css必须在公共文件夹中,否则用户无法访问看到它,因为他没有权限

© www.soinside.com 2019 - 2024. All rights reserved.