我创建了.htaccess 文件 并将这段代码放入其中:
Order Deny,Allow
Deny from all
这是我的 php 代码,它在我装有 WAMP SERVER 的 Windows 机器上运行良好:
$path = $data['path']; // complete path to file
if (is_user_logged_in()) {
//return $path;
if (file_exists($path)) {
header('Cache-Control: public');
header('Content-Description: File Transfer');
header('Content-Type: application/pdf');
header('Content-Transfer-Encoding: binary');
readfile($path);
}
} else {
return 'Welcome, visitor!';
}
但是当我在服务器上运行它时,它根本不起作用。有一个锁定的文件夹,我在其中放置了 .htaccess
文件。在锁定的文件夹下有许多子文件夹,我想限制只有登录用户的访问权限。
最佳答案
您的 .htaccess 文件是一种(缓慢的)方式来阻止任何人请求您的文件。它不关心用户是否登录。
我会采取的方法是
a) 将您想要授予登录访问权限的文件移出根目录。这样,没有人可以直接请求路径 - 他们必须使用您的 php 文件才能获得访问权限。
b) 在您的 php 文件中,测试您的用户是否已登录。如果没有,请向他们显示登录屏幕或适当的错误消息。
c) 当他们登录时,阅读您要向他们展示的文件并回应内容,(或阅读数据并构建回复页面)。
关于php - 如何只允许登录用户访问linux服务器上文件夹中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13680464/