5

サーバーのダウンロードディレクトリにファイルが.docあります。.zip私のサイトページにアクセスした人は誰でも(download-file.php)これらのファイルをダウンロードできるのはそのユーザーだけで、他のユーザーはダウンロードできないはずです。

上記を達成しようとしていますが、運がありません...

私はまだhttp://example.com/sample.docブラウザに直接ファイルアドレス( )を置くことができ、私が望まないものをダウンロードすることができます..他の誰かが任意のWebサイトで上記のファイルへのリンクを提供しても、ダウンロードは行われません.

誰かアイデアを共有してください..どうすればこれを達成できるでしょうか。

前もって感謝します。

4

4 に答える 4

13

ドキュメント ルートの htaccess ファイルに、次のルールを含めることができます。

RewriteEngine On
# you can add whatever extensions you want routed to your php script
RewriteCond %{REQUEST_URI} \.(doc|zip|pdf)$ [NC]
RewriteRule ^(.*)$ /download-file.php?filename=$1 [L]

次に、表示する必要があるものとダウンロードリンクを表示できます.phpスクリプトは、 phpのreadfile()download-file.phpを使用してすぐにファイルを提供できます(例についてはリンクを参照)。

于 2012-12-24T19:26:20.473 に答える
3

ファイル ディレクトリへのアクセスを禁止し、PHP 駆動のみのダウンロードを提供する必要があります (PDF の例)。

data/.htaccess (グーグル):

deny from all

ダウンロード.php:

/* User access check here, prior to the following code */

$name = 'MyPDF.pdf';
$filename = 'data/pdf_12345.pdf';
header('Content-Disposition: attachment; filename="'.$name.'"');
header("Content-Type: application/pdf");
header("Content-Length: " . filesize($file));
fpassthru($filename)

もちろん、次のように、ユーザーごとおよびリクエストごとに異なるファイル名を設定できます。download.php?file=MyPDF

于 2012-12-24T19:11:49.270 に答える
0

専用サーバーを使用している場合、最も簡単で安全な方法は、ファイルを/var/www/の外に保存することです。

たとえば、フォルダー/var/webdocs/を作成してそこに保存できます。

于 2014-07-25T13:52:36.857 に答える
0

次のコードのような方法を使用して、人々がコンテンツに直接アクセスすることを制限できるはずです。

RewriteCond %{HTTP_REFERER} !^http://your_domain.com/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http://your_domain.com$ [NC]

RewriteCond %{HTTP_REFERER} !^http://www.your_domain.com/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http://www.your_domain.com$ [NC]

RewriteRule .*.(jpg|jpeg|gif|png|bmp|pdf|doc)$ http://your_domain.com/no_access.php [R,NC]

これにより、人々があなたのサイトから画像、PDF、またはドキュメントを直接リンクするのを防ぐことができます. 次に、これらの拡張子を持つファイルは、サイトからのみアクセスできます。誰かがあなたのファイルに直接リンクまたはアクセスしようとすると、あなたが選択したもの (no_access.php に配置したもの) が表示されます。

于 2012-12-24T19:55:42.567 に答える