2011-07-28 10 views
11

正常に実行した.htaccessでディレクトリをパスワードで保護する必要があります。しかし、ウェブサイトのフロントエンドは、このパスワードで保護されたディレクトリ(私ではない)内の画像にリンクするようにプログラムされていましたが、ウェブページがそれらの画像にアクセスしようとすると、.htaccessパスワードはディレクトリを保護しますが、画像ファイルの種類を許可します

このディレクトリをパスワードで保護することはできますが、* .jpgや* .gifのような画像ファイルにはアクセスできますか?

私の現在の.htaccessコードはこれです:任意の助け

AuthName "Secure Area" 
AuthUserFile "/home/siteuser/.htpasswds/public_html/admin/passwd" 
AuthType Basic 
require valid-user 

ありがとう!

答えて

14
AuthName "Secure Area" 
AuthUserFile "/home/siteuser/.htpasswds/public_html/admin/passwd" 
AuthType Basic 
require valid-user 
<FilesMatch "\.(png|jpe?g|gif)$"> 
    Satisfy Any 
    Allow from all 
</FilesMatch> 

編集Shefの改善

+1

+1。ショート&スイート!正規表現は文字列 'FilesMatch" \。(png | jpe?g | gif)$ "'の終わりからのみ一致するように変更する必要があります。 – Shef

+0

優秀、これは完璧に働いた、ありがとう! – Kevin

0

Filematchに入れてみましたか?あなたが試みることができる何

<FilesMatch "^.*(png|jpe?g|gif)$"> 
AuthName "Secure Area" 
AuthUserFile "/home/siteuser/.htpasswds/public_html/admin/passwd" 
AuthType Basic 
require valid-user 
</FilesMatch> 
+1

を。画像は保護されますが、他の文書は保護されません。 OPが欲しいものの反対 – genesis

-1

は、画像表示プロキシを書くことです:あなたは今それを持っているよう

  • は、パスワード保護と、ディレクトリを保管してください。
  • イメージがリンクされているWebサイトのルートにある.htaccessに、必要なイメージタイプの書き換えルールを追加します。このルールは、PHPハンドラスクリプトにコールをリダイレクトする必要があります。
  • このスクリプトは、要求されたパスを評価し、ファイルシステムからファイルをロードし、そのヘッダを差し引いてheader()を使用してクライアントに送信し、その後に画像ファイルの内容echo file_get_contents()を実行する必要があります。

PHPは.htaccessの影響を受けませんので、必要なファイルを読み込んでエンドユーザーにプロキシできるようにする必要があります。

1

を組み込むためにあなたは、次のサイトで提供します.htaccessの設定のすべてのさまざまなオプションをチェックできます。これは動作しません

Stupid htaccess Tricks

関連する問題