0

我创建了.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文件。在锁定文件夹下有许多子文件夹,我想将访问权限限制为仅登录用户。

4

1 回答 1

1

您的 .htaccess 文件是一种(缓慢)阻止任何人请求您的文件的方法。它不关心用户是否登录。

我会采取的方法是

a) 将您要授予登录访问权限的文件移出根目录。这样,没有人可以直接请求路径 - 他们必须使用您的 php 文件才能访问。

b) 在您的 php 文件中,测试您的用户是否已登录。如果没有,请根据需要向他们显示登录屏幕或错误消息。

c)当他们登录时,读取您要显示的文件并回显内容,(或读取数据并构建回复页面)。

于 2012-12-03T11:04:15.113 回答