2016-06-20 5 views
1

誰もアクセスできないはずのPDFファイルのディレクトリを持っていますが、ディレクトリはWebrootに残る必要があります。私はfile_get_contentsを使用してPHPスクリプト(base64_encodingと保護されたダウンロード)で使用するためにPDFファイルにアクセスします。PHPのfile_get_contentsを許可しますが、ディレクトリへの他のすべてのパブリックアクセスを制限します

ディレクトリ内にある.htaccessで次のようなさまざまな組み合わせを試しましたが、すべてのアクセスが制限されてPHPスクリプトが失敗するか、すべてのユーザーにフルアクセスが許可されます。

order deny,allow 
deny from all 
allow from localhost 
satisfy any 

すべてのPDFファイルは、-rw-r--r--権限を持っているとapacheユーザーが所有しています。

ユーザがディレクトリにアクセスするのを防ぐがPHPスクリプトにアクセスできるようにするには、私の.htaccessファイルに何を入れるべきですか?

+2

'file_get_contents'がファイルシステムを読み込んだ場合、あなたのApacheルールはPHPを失敗させません。それは別のものです。 –

+0

ディレクトリがWebrootに残っている必要があるのはなぜですか? 'file_get_contents'は他の場所にいても動作します。 –

+0

file_get_contentsはhttpを使用していますか? – Progrock

答えて

1

これを行う場合:file_get_contents('http://www.example.com/pdfs/mypdf.pdf') httpを使用しています。あなたがこれをしている場合:file_get_contents('/public_html/pdfs/mypdf.pdf')それはそうではありません。 htaccessですべてを拒否し、ローカルパス上でfile_get_contentsを使用すると、コードとpdfsが同じファイルシステム上にある限り、要件を満たします。 (コメントから移動しました)

関連する問題