0

.htaccess ファイルを作成し、このコードをその中に配置します。

Order Deny,Allow
Deny from all

WAMP SERVERを搭載したWindowsマシンで正常に動作するphpコードは次のとおりです。

    $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 に答える