2010-12-11 26 views
0

ユーザーがサーバーからZipファイルを直接ダウンロードできないようにする方法はありますか? 私はhtaccessにdeny allを追加しようとしていますが、それはユーザーがフォルダの内容を閲覧することを妨げています。彼らはまだブラウザに直接入力することができますhttp://site.com/file.ziphtaccessまたはzipファイルのダウンロードを防止するその他の方法?

アイデア?

+0

最初にZIPファイルを置いてはいけません。 (深刻な答えのためには、おそらくあなたがファイルをダウンロードできるようにする条件を記述しなければならないでしょう) – Quentin

+0

それをダウンロードできる人はPHPセッションを通してのみ許可されます。セッションを作成してユーザーを認証し、ダウンロードすることができます。他のすべてのことはできません... –

答えて

0

htaccessが実際に動作しない場合、これらのファイルへのアクセス許可を600などに設定するのはどうですか? 私はUNIXのr/w権限を意味します。あなたはftpなどでそれらを変更することができます。 ウェブサーバーがあなたのアカウントの下で動作しない限り、アクセスすることはできません。

+0

私が行ったことは、アップロードされたzipファイルを640chmodに変更したもので、公開されたファイルへの直接アクセスを妨げています。所有者であるPHPスクリプトによって提示されます... –

0

ディレクトリをパスワードで保護し、そのディレクトリにzipファイルを置くことができます。それを行う方法の包括的なガイドはhereです。これについて

+0

私はちょうどそれらを拒否する別の方法を探しています...彼らが試してみると404に似ています... –

+0

パスワードを守らないと実際には届かない外では、なぜあなたはそこにファイルを持っていますか?あなたのウェブルートに入れないでください。それは見えません。あなたのウェブルートにない場合でも(PHP)スクリプトで使用することができます。そのために必要な場合は、他の場所にファイルを移動することができます。 – GolezTrol

0

何 - 認証を行い、その後、承認ページにzipファイルを提供するために、passthru()を使用してページに.zipファイルで終わる任意のURLを書き換えるmod_rewriteをhttp://httpd.apache.org/docs/1.3/mod/core.html#files

+0

ええ、私はhtaccessでこれらの命令のいくつかを試しましたが、うまくいきませんでした... –

2

使用。この(単にあなたのアイデアを与えるために、箱から出して動作しない場合があります)などの

何か:

RewriteRule ^(.*?\.zip)$ authMe.php?url=$1 

はここに読みました: http://httpd.apache.org/docs/current/mod/mod_rewrite.html

そしてここに: http://php.net/manual/en/function.passthru.php

+0

私はこれ(rewriterule)の組み合わせを試してもまだ動作しませんでした...私はまだURLを貼り付けることができますブラウザのファイルをダウンロードしてください。 –

+1

あなたの書き換えがURLと一致しません。すべてに一致するものを試してから、authMeページで終わるかどうかを確認してください。たとえば、次のようになります。RewriteRule ^(*)$ authMe.php?url = $ 1 そこから、ZIPファイルまたはXYZという名前のフォルダ内のファイルのみにマッチルールを適用します。RewriteRule^XYZ /([^ /] *) $ authMe.php?url = $ 1 – Bazzz

関連する問題