2012-02-08 13 views
0

良い一日全てからダウンロードする.htaccessファイルは、私は私のサイトのルートにドキュメントというフォルダがあり、スクリプト

をファイルを拒否し、これは.htpasswdのファイルでパスワードで保護されていますが、スクリプトによってアクセスが許可されます表示する。

ディレクトリからファイルに直接アクセスせずにスクリプトをダウンロードできるようにするにはどうすればよいですか?

状況を説明する例を示します。

私のホームページ私は画像test.jpgを表示します。この画像は保護されている文書フォルダにあります。画像はホームページに正しく表示されます。

アドレスバーにwww.domain.com/documents/test.jpgと入力しても表示されず、ダウンロードもされませんが、パスワードを尋ねられます(パスワードを入力する必要はありませんが

パスワードを尋ねることなく、ドキュメントをダウンロードできるようにする方法はありますか?他の言葉は.htaccessルールをバイパスしますか?

事前に

+1

任意のPHPは、とてもバイパスである前にhtaccessファイルが処理されるとそれはオプションではありません。 –

答えて

1

私はPHPとJavascriptを追加し直しました。ドキュメントフォルダの外にあり、Apache認証なしでアクセス可能なリマッパPHPスクリプトを書くことを止めるものは何もありません。これは、より詳細な説明のための文書の一例と、ユーザーの貢献を参照してください(ファイルを送信するreadfile()を発行することができます。これは、サーバーサイドスクリプトであるので、それは保護されたディレクトリに直接アクセスする必要があります。

もちろん、あなたは可能性がありますいくつかの形式のアクセス制御を実装したいとします。たとえば、のチェックをに追加すると、ファイル名のmd5と共有秘密に基づいています。これは呼び出し側のスクリプトでは計算が簡単ですが、

脚注として、ユーザーがイメージをダウンロードできるようにするには、次のように入力します。なぜそれらがアクセス制御されたディレクトリに置かれているのか。なぜ、このディレクトリからそれらを移動しないのですか?

1

バリー氏によると、.htaccessはPHPが処理される前に処理されるため、バイパスすることはオプションではありません。 .htaccessの設定を変更するか、リマッパーPHPスクリプトを作成する必要があります。

直接ダウンロードリンクを許可するが、ディレクトリリストを拒否するには、.htaccessの設定を変更することをお勧めします。これにより、パスワードを要求されずにhttp://www.example.com/documents/some-file-name.extなどの直接リンクをダウンロードできるようになりますが、事前にリンクを知っておく必要があります。/documents/フォルダをすべて表示することはできません。

あなたはコメントアウトするか、認証ディレクティブを削除することによってこれを行うことができます。

#AuthUserFile /path/to/.htpassword 
#AuthName "Name" 
#AuthType Basic 
#Require Valid-User 

とディレクトリのリストをブロックするディレクティブを追加:

Options -Indexes 
関連する問題